MongoDB,从数组中删除对象
文档:
{ _id: 5150a1199fac0e6910000002, name: 'some name, items: [{ id: 23, name: 'item name 23' },{ id: 24, name: 'item name 24' }] }
有没有办法从数组中拉出特定的对象? IE浏览器如何从items数组中拉出ID为23的整个项目对象。
我努力了:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
不过,我很确定,我没有正确使用“拉”。 从我所了解的拉将从一个arrays,而不是一个对象拉场。
任何想法如何将整个对象拉出arrays。
作为一个奖金,我试图在mongoose/ nodejs这样做,以及不知道这种types的东西在mongooseAPI,但我找不到它。
尝试..
db.mycollection.update( {'_id': ObjectId("5150a1199fac0e6910000002")}, { $pull: { "items" : { id: 23 } } }, false, true );
我有一个像这样的文件
我必须从地址数组中删除地址
在互联网上search很多,我发现了解决scheme
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){ if(err) { return res.status(500).json({'error' : 'error in deleting address'}); } res.json(data); });
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 } ] }
使用$ pull来删除数据
return this.mobiledashboardModel .update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}}) .exec() .then(dashboardDoc => { return { result: dashboardDoc } });