我有一個用戶的集合,其中有位置,有一些API鍵。從二級嵌入式文檔刪除項目
{
"_id" : ObjectId("5864d5e2962d747913577cc1"),
"username" : "george",
"usernameCanonical" : "george",
"email" : "[email protected]",
"emailCanonical" : "[email protected]",
"enabled" : true,
"password" : "bla bala bla",
"roles" : [],
"lastLogin" : ISODate("2016-12-29T09:23:18.000Z"),
"locations" : [
{
"_id" : ObjectId("5864da9c962d7476037076b2"),
"name" : "lalala",
"address" : "bla bla bla",
"api_keys" : [
{
"_id" : ObjectId("58651d06962d74760b196a52"),
"key" : "some valid key1",
"is_test" : true
}
]
}
]
}
我試圖刪除api_key沒有成功。
我嘗試:
1)
db.getCollection('user').update(
{ 'locations.api_keys._id': ObjectId('5864d5e2962d747913577cc1') },
{
$pull: {
'$.api_keys': {
_id: ObjectId("58651d06962d74760b196a52")
}
}
}, false, true
)
=>更新的0在7毫秒
2結果)
db.getCollection('user').update(
{},
{
$pull: {
'$.api_keys': {
_id: ObjectId("58651d06962d74760b196a52")
}
}
}, false, true
)
=>更新的1現有記錄( s),但沒有更改存儲的對象
對不起,它拋出一個錯誤。位置運算符沒有從查詢中找到所需的匹配。 Unexpanded update:locations。$。api_keys' –