为了账号安全,请及时绑定邮箱和手机立即绑定

MongoDB,从数组中删除对象

MongoDB,从数组中删除对象

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 );


查看完整回答
反对 回复 2019-07-24
?
慕姐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);

      });


查看完整回答
反对 回复 2019-07-24
?
沧海一幻觉

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
           }
       ]
    }


查看完整回答
反对 回复 2019-07-24
  • 3 回答
  • 0 关注
  • 1112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信