MongoDB,从数组中删除对象文档:{
_id: 5150a1199fac0e6910000002,
name: 'some name,
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]}有没有办法从数组中提取特定对象?IE如何从items数组中提取id为23的整个item对象。我试过了:db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});但是我很确定我没有正确使用'pull'。根据我的理解,pull将从数组中提取字段而不是对象。任何想法如何将整个对象拉出阵列。作为奖励,我试图在mongoose / nodejs中执行此操作,并且不确定这种类型的东西是否在mongoose API中但我找不到它。
3 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
尝试..
db.mycollection.update( {'_id': ObjectId("5150a1199fac0e6910000002")}, { $pull: { "items" : { id: 23 } } },false,true );
慕姐4208626
TA贡献1852条经验 获得超7个赞
我有一个类似的文件
我必须从地址数组中删除地址
在网上搜索了很多我找到了解决方案
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){ if(err) { return res.status(500).json({'error' : 'error in deleting address'}); } res.json(data); });
沧海一幻觉
TA贡献1824条经验 获得超5个赞
my database:-> { "_id" : ObjectId("5806056dce046557874d3ab18"), "data" : [ { "id" : 1 }, { "id" : 2 }, { "id" : 3 } ] }MY QUERY:->db.getCollection('play_table').update({},{$pull:{"data":{"id":3}}},{multi:true}OutPut:->{ "_id" : ObjectId("5806056dce046557874d3ab18"), "data" : [ { "id" : 1 }, { "id" : 2 } ] }
添加回答
举报
0/150
提交
取消