我需要从特定集合中的每个条目中删除某个键和值。我已经调查了删除,这似乎只适用于整个条目。看看更新,我不相信用null或空字符串更新特定键会实现我正在尝试做的事情。我是mongodb的初学者,所以请原谅我的无知。
长话短说,我怎么能转
{
"_id" : 1234,
"name" : "Chris",
"description" : "Awesome"
}
到
{
"_id" : 1234,
"name" : "Chris"
}
不删除条目并创建新条目,或使用任何非mongodb命令?谢谢!
答案 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
将您的行插入新文档,或者更新现有文档(如果有)。