我想从嵌入式数组中提取特定项目...假设以下mongo文档....
db.test.find()
{
id:1,
comments :
[
{ cid: 1 },
{ cid: 2 },
{ cid: 3 },
{ cid: 4 },
{ cid: 5 }
]
}
Run Code Online (Sandbox Code Playgroud)
我想从comments数组中删除一个项目cid,而不是按位置.我已经尝试了所有这些,但它们似乎都不起作用.我尝试过使用点符号,但这似乎没有任何效果.我尝试了如何从数组中删除第n个元素的最后一篇帖子建议,但没有运气......
db.test.update({ 'comments.cid' : 5}, {"$pull" :{"comments":{"cid":"3"}}} )
db.test.update( {id: 1}, {"$pull" : {"comments" : { "cid" : "3"}}},false,false)
db.test.update( {id: 1}, {"$pull" :{"comments.cid" :3}})
Run Code Online (Sandbox Code Playgroud)
Ale*_*tic 10
这应该工作:
db.test.update( {id: 1}, {$pull :{comments: {cid :3}}})
Run Code Online (Sandbox Code Playgroud)
另外,在你的文档中,你有:id:1最后没有逗号,它应该是:
id:1,
Run Code Online (Sandbox Code Playgroud)
这些也有效...
db.test.update({comments:{cid:4} },
{$pull:{comments:{cid:4}},
$inc:{commentCount: -1}})
db.test.update({"comments.cid" : 17},
{$pull:{ comments:{cid: 17}},
$inc:{commentCount:-1}})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7057 次 |
| 最近记录: |