相关疑难解决方法(0)

如何删除mongodb中的数组元素?

这是阵列结构

contact: {
    phone: [
        {
            number: "+1786543589455",
            place: "New Jersey",
            createdAt: ""
        }
        {
            number: "+1986543589455",
            place: "Houston",
            createdAt: ""
        }

    ]
}
Run Code Online (Sandbox Code Playgroud)

在这里我只知道mongo id(_id)和电话号码(+1786543589455),我需要从文档中删除整个相应的数组元素.即手机阵列中的零索引元素与电话号码匹配,需要删除相应的数组元素.

contact: {
    phone: [
        {
            number: "+1986543589455",
            place: "Houston",
            createdAt: ""
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下更新方法

collection.update(
    { _id: id, 'contact.phone': '+1786543589455' },
    { $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Run Code Online (Sandbox Code Playgroud)

但它number: +1786543589455从内部数组对象中移除 ,而不是手机数组中的零索引元素.试图pull也没有成功.

如何删除mongodb中的数组元素?

mongodb

117
推荐指数
4
解决办法
11万
查看次数

MongoDB,从数组中删除对象

文档:

{
   _id: 5150a1199fac0e6910000002,
   name: 'some name,
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从数组中提取特定对象?IE如何从items数组中提取id为23的整个item对象.

我试过了:

db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
Run Code Online (Sandbox Code Playgroud)

但是我很确定我没有正确使用'pull'.根据我的理解,pull将从数组中提取字段而不是对象.

任何想法如何将整个对象拉出阵列.

作为奖励,我试图在mongoose/nodejs中执行此操作,并且不确定这种类型的东西是否在mongoose API中但我找不到它.

javascript arrays mongoose mongodb node.js

71
推荐指数
5
解决办法
6万
查看次数

标签 统计

mongodb ×2

arrays ×1

javascript ×1

mongoose ×1

node.js ×1