说我有一份文件代表这样的书:
{
"_id":"1234567890",
"title":"Lord Of The Rings",
"books": {
"1234567890":{
"_id":"123456789890",
"title":"The Two Towers",
"page_count":{
"en":6000,
"de":7000
}
},
"2234567890":{
"_id":"223456789890",
"title":"The Return Of The King",
"page_count":{
"en":6000,
"de":7000
}
},
}
}
如何删除第二本书的页数?我试过了
{$unset : {"books.2234567890.page_count":""}}
没用。有什么想法吗?
非常感谢
答案 0 :(得分:10)
我抓了它,看起来你要做的事情应该正常工作。我会检查您的查询以找到要更新的正确文档,并确保它找到您想要的内容。
> db.books.findOne()
{
"_id" : "1234567890",
"title" : "Lord Of The Rings",
"books" : {
"1234567890" : {
"_id" : "123456789890",
"title" : "The Two Towers",
"page_count" : {
"en" : 6000,
"de" : 7000
}
},
"2234567890" : {
"_id" : "223456789890",
"title" : "The Return Of The King",
"page_count" : {
"en" : 6000,
"de" : 7000
}
}
}
}
> db.books.update({'_id': "1234567890"}, {$unset: {'books.2234567890.page_count': ""}})
> db.books.findOne()
{
"_id" : "1234567890",
"books" : {
"1234567890" : {
"_id" : "123456789890",
"title" : "The Two Towers",
"page_count" : {
"en" : 6000,
"de" : 7000
}
},
"2234567890" : {
"_id" : "223456789890",
"title" : "The Return Of The King"
}
},
"title" : "Lord Of The Rings"
}
>