从现有MongoDB条目中删除键/值

时间:2012-04-13 18:58:48

标签: mongodb

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

长话短说,我怎么能转

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

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

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

3 个答案:

答案 0 :(得分:80)

在致电update()时尝试$unset

像这样:

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

并且,正如vikneshwar所述,如果您想从所有(或多个)文档中删除一个字段,可以使用updateMany(),如下所示:

db.collection_name.updateMany({}, { $unset : { description : 1} })

答案 1 :(得分:2)

要引用包并删除各种"键",请尝试此

db['name1.name2.name3.Properties'].remove([ { "key" : "name_key1" }, { "key" : "name_key2" }, { "key" : "name_key3" } )]

答案 2 :(得分:-5)

如果upsert()不存在,请考虑_id将您的行插入新文档,或者更新现有文档(如果有)。