$从文档中的数组中提取
$pull from array in document
我正在尝试从 mongodb 文档中的数组中 $pull。
文档结构如下:
{
"_id" : ObjectId("54ee62ef688b41ff072b934b"),
"pictures" : [
{
"url" : "...",
"_id" : ObjectId("54ee6303688b41ff072b934d")
},
{
"url" : "...",
"_id" : ObjectId("54ee6304688b41ff072b934e")
},
{
"url" : "",
"_id" : ObjectId("54ee6304688b41ff072b934f")
}
]
}
我试过更新对象
var update = { $pull: { pictures: {$elemMatch: {_id:req.params.picid } } } }
db.activity.update({_id: new ObjectId(req.params.id)}, update)
which returns writeresult: 1, 但图片从未被删除。
ps 我正在使用节点,因此 req.params.picid
不需要$pull
operator acts as a query document in itself and is also considered against every element of the array so $elemMatch
:
var update = {
"$pull": { "pictures": { "_id": new ObjectId(req.params.picid) } }
};
您还需要将 "string" 从请求参数转换为 ObjectId
。
我正在尝试从 mongodb 文档中的数组中 $pull。
文档结构如下:
{
"_id" : ObjectId("54ee62ef688b41ff072b934b"),
"pictures" : [
{
"url" : "...",
"_id" : ObjectId("54ee6303688b41ff072b934d")
},
{
"url" : "...",
"_id" : ObjectId("54ee6304688b41ff072b934e")
},
{
"url" : "",
"_id" : ObjectId("54ee6304688b41ff072b934f")
}
]
}
我试过更新对象
var update = { $pull: { pictures: {$elemMatch: {_id:req.params.picid } } } }
db.activity.update({_id: new ObjectId(req.params.id)}, update)
which returns writeresult: 1, 但图片从未被删除。
ps 我正在使用节点,因此 req.params.picid
不需要$pull
operator acts as a query document in itself and is also considered against every element of the array so $elemMatch
:
var update = {
"$pull": { "pictures": { "_id": new ObjectId(req.params.picid) } }
};
您还需要将 "string" 从请求参数转换为 ObjectId
。