在shell中,我的查询是:

db.checkin_4e95ae0926abe9ad28000001.update({location_city:"New York"}, {location_country: "FUDGE!"});

然而,它实际上并没有更新我的记录.它也不会出错.当我在运行这个程序后计算db.checkin_4e95ae0926abe9ad28000001.find({location_city:"New York"});时,我得到了所有结果,但location_country没有改变:

{
    "_id": ObjectId("4e970209a0290b70660009e9"),
    "addedOn": ISODate("2011-10-13T15:21:45.772Z"),
    "location_address1": "",
    "location_city": "New York",
    "location_country": "United States",
    "location_latLong": {
        "xLon": -74.007124,
        "yLat": 40.71455
    },
    "location_source": "socialprofile",
    "location_state": "New York",
    "location_zip": ""
}

推荐答案

已在3.6版中更改.

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>,
     collation: <document>,
     arrayFilters: [ <filterdocument1>, ... ]
   }
)

例子:

db.getCollection('products').update({},{$unset: {translate:1, qordoba_translation_version:1}}, {multi: true})

在你的例子中:

db.checkin_4e95ae0926abe9ad28000001.update(
   {location_city:"New York"}, //query
   // $update query
   { $set : { location_country: "FUDGE!"}});

默认情况下,update()方法更新单个文档.设置多参数以更新与查询条件匹配的所有文档.

例2:

   db.checkin_4e95ae0926abe9ad28000001.update(
       {location_city:"New York"}, //query
       // $update query
       { $set : { location_country: "FUDGE!"}}, {multi: true});

Mongodb相关问答推荐

更新查询mongoose 中的礼宾更新字段

在一个视图中连接两个集合MongoDB;展开有什么作用?

MongoDB Aggregate:查找每个月的交叉日期范围的数量

在MongoDB Aggregate for My BooksDB中将`$match`放在`$unwin`之前或之后的区别

聚合管道可以用于更新数据库中的文档吗?

mongoDB文档数组字段中的唯一项如何

Mongo:查找具有 0 个关联文档的文档,成本更低

在运算符 $map 中嵌入运算符 $exists

如何在 Spring-Data-MongoDB 中使用 $facet、$addFields 和 $function

MongoDB 查询以包含多个字段的最常见值的计数

MongoDB 2.1 聚合框架总和匹配名称的数组元素

mongodb上不区分大小写的查询

用 BsonRepresentation(BsonType.ObjectId) vs BsonId vs ObjectId 在 C# 中装饰属性之间的区别

在 GridFS、express、mongoDB、node.js 中存储来自 POST 请求的数据流

如何在 mongoDB 中聚合巨大的数组?

Golang + MongoDB 嵌入类型(将一个 struct 嵌入到另一个 struct 中)

如何仅通过一次调用将一组对象保存到mongoose数据库?

MongoDB MapReduce - 发出一个键/一个值不调用reduce

'this' 在 Mongoose 预保存挂钩中未定义

从 Grunt 任务中启动 MongoDB