4

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

我在这里做错了什么?

4

3 回答 3

18

你的语法不正确。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 上有效。

于 2012-12-20T13:13:26.977 回答
0

使用节点本机驱动程序时我遇到了同样的问题。

{multi:1}不工作

{multi:true}

有点奇怪

于 2014-09-13T14:00:30.367 回答
0

请尝试这种方式:

2.0 以上版本的 CLI 如下所示:

更新(标准、更新、更新插入、多个)

例子 :

db.collectionname.update({condition},{ $set:{ groupid:'541ae260514ca0b76981222f'}},false,{ multi: true });

于 2014-09-26T10:17:29.217 回答