58

我需要从特定集合中的每个条目中删除某个键和值。我已经研究过删除,这似乎只适用于整个条目。查看更新,我不相信用 null 或空字符串更新特定键会实现我想要做的事情。我是mongodb的初学者,所以请原谅我的无知。

长话短说,我该怎么转

{
  "_id" : 1234,
  "name" : "Chris",
  "description" : "Awesome"
}

进入

{
  "_id" : 1234,
  "name" : "Chris"
}

不删除条目并创建一个新条目,或者使用任何非 mongodb 命令?谢谢!

4

3 回答 3

123

尝试$unset调用update().

像这样:

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })

而且,正如vikneshwar评论的那样,如果您想从所有(或多个)文档中删除一个字段,您可以updateMany()像这样使用:

db.collection_name.updateMany({}, { $unset : { description : 1} })
于 2012-04-13T19:04:50.837 回答
4

要引用一个包并删除各种“键”,试试这个

db['name1.name2.name3.Properties'].remove([ { "key" : "name_key1" }, { "key" : "name_key2" }, { "key" : "name_key3" } )]
于 2015-04-24T16:48:15.680 回答
-9

还要考虑一下,如果不存在upsert(),则将您的行作为新文档插入或更新现有文档(如果有)。_id

于 2012-04-14T09:12:41.147 回答