我有一个从 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,
}

我在这里做错了什么?

最佳答案

您的语法不正确。对于 2.2 之前的版本,CLI 中的更新操作如下所示:



纠正后,它的工作原理:

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

编辑:正如 Sammaye 指出的,您使用的语法在 mongod 的最新稳定版本上有效。

关于mongodb - 多重更新在 MongoDB 中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13972846/

10-10 18:08