我想删除这个:
{
"val" : NumberLong(200),
"chId" : 2,
"reqSys" : "222220005031",
"old" : NumberLong(223),
"isRb" : false
},
Run Code Online (Sandbox Code Playgroud)
由此:
{
"_id" : ObjectId("52d7c25480f0a83293adbbbc"),
"d" : 2014001,
"m" : 123456789,
"topups" : {
"data" : [
{
"val" : NumberLong(200),
"chId" : 2,
"reqSys" : "222220005031",
"old" : NumberLong(223),
"isRb" : false
},
{
"val" : NumberLong(150),
"chId" : 2,
"reqSys" : "222220005031",
"old" : NumberLong(166),
"isRb" : false
}
],
"total" : {
"cnt" : 2,
"revenue" : NumberLong(3500000)
}
}
Run Code Online (Sandbox Code Playgroud)
我想通过查询{d:2014001, m:123456789}并删除数据数组中具有"val"的整个对象来找到该对象:200,如果在一个命令中可以实现的话.但如果没有,多个命令也适用于我.试过$ pull和$ pullAll但是我错过了什么.
Sum*_*eet 37
要删除子文档,请使用$ pull
此查询将从嵌套的子文档中删除
db.collection.update({ d : 2014001 , m :123456789},
{$pull : { "topups.data" : {"val":NumberLong(200)} } } )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15516 次 |
| 最近记录: |