假设我有一个代表这样的书籍的文件:
{
"_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
}
},
}
}
Run Code Online (Sandbox Code Playgroud)
我如何去除第二本书的页数?我试过了
{$unset : {"books.2234567890.page_count":""}}
Run Code Online (Sandbox Code Playgroud)
没工作.有任何想法吗?
非常感谢
mgo*_*fin 12
我抓了它,看起来你要做的事情应该正常工作.我会检查您的查询以找到要更新的正确文档,并确保它找到您想要的内容.
> 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"
}
>
Run Code Online (Sandbox Code Playgroud)