多重更新在MongoDB中不起作用

nic*_*ckf 4 mongodb

我有一个我从CSV填充的集合,但是在记录中有一些我不再需要的字段,所以我想删除它们,但它似乎没有做任何事情.这是来自CLI:

> db.stops.update({}, { $unset: {stop_lat: 1, stop_lon: 1} }, { multi: 1 })
> db.stops.findOne({stop_id: 1000})

{
  "_id" : ObjectId("50d30386884be8bf2a6c208a"),
  "stop_id" : 1000,
  // some other fields
  "stop_lat" : -27.339115,
  "stop_lon" : 153.043884,
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

Rem*_*iet 18

你的语法不正确.CLI 中2.2版之前的更新操作如下所示:

更新(标准,更新,upsert,多个)

纠正后,它有效:

> db.stops.update({}, { $unset: {stop_lat: 1, stop_lon: 1} }, false, true)
> db.stops.findOne({stop_id: 1000})
{ "_id" : ObjectId("50d30386884be8bf2a6c208a"), "stop_id" : 1000 }
Run Code Online (Sandbox Code Playgroud)

编辑:正如Sammaye所指出的那样,你使用的语法在mongod的最新稳定版本上是有效的.

  • 他是.该语法仅在2.2+ iirc上有效. (3认同)