mongodb - 为什么这个 MongoDB 更新不起作用?

标签 mongodb database

db.posts.update({}, {"pop_score":999});

db.posts.find({},{"pop_score":1});
{ "_id" : ObjectId("4d8eadd6df83500f3b000004"), "pop_score" : 0 }
{ "_id" : ObjectId("4d8eb1e3df83500f3b000035"), "pop_score" : 1 }
{ "_id" : ObjectId("4d8eb238df83500f3b000039"), "pop_score" : 1 }
{ "_id" : ObjectId("4d91377bdf8350063d000000"), "pop_score" : 1 }
{ "_id" : ObjectId("4d913c19df8350063d000001"), "pop_score" : 2 }
{ "_id" : ObjectId("4d8eacabdf83500f3b000000"), "pop_score" : 1 }

我将所有帖子的 pop_score 更新为 999。但是当我查询它们时,它没有更新。

最佳答案

它确实有效,但默认情况下只更新第一个匹配的文档。我怀疑你那里有一些文件,现在是 999。

您需要做的是通过将可选的 multi 标志设置为 true 来告诉 MongoDB 更新每个匹配的文档:

db.posts.update({}, {"pop_score":999}, false, true)

这将更新每个文档,而不仅仅是它找到的第一个文档。

您可能希望查看 docs on updating还有关于这些标志的更多信息。

关于mongodb - 为什么这个 MongoDB 更新不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736882/

相关文章:

mysql - 在日期字段中保留加入时更新速度问题

database - 如果脚本错误,则停止从创建数据库的SQL

php - 为什么我不能在 Wordpress 中创建新帖子?第 716 行的警告 : Creating default object from empty value in/public_html/wp-admin/includes/post. php

javascript - Mongoose .js : force always populate

c# - 我可以自动填充 MongoDB 中的 LastUpdated 字段吗(使用 C# 驱动程序)

android - 如何获取最新的 Room 版本?

database - Google App Engine 乐观并发

javascript - 如何在不同条件下对同一查询进行 db.collection.count() ?

reactjs - MongoDB - 语法错误 : Invalid regular expression in $regex

javascript - 存储过程中的 Mongodb 处理 - JavaScript 中的 BSON 到 JSON