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

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

这是数组结构

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

    ]}

在这里,我只知道蒙戈的身份(_id)和电话号码(+1786543589455),我需要从文档中删除整个对应的数组元素。也就是说,电话数组中的零索引元素与电话号码匹配,需要删除相应的数组元素。

contact: {
    phone: [
        {
            number: "+1986543589455",
            place: "Houston",
            createdAt: ""
        }
    ]}

我尝试使用以下更新方法

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

但它消除了number:  +1786543589455从内部数组对象,而不是电话数组中的零索引元素。试着pull也没有成功。

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


呼唤远方
浏览 4007回答 4
4回答

茅侃侃

您可以简单地使用$PULL来删除子文档。$PULL运算符从现有数组中移除与指定条件匹配的一个或多个值的所有实例。Collection.update({     _id: parentDocumentId  }, {     $pull: {       subDocument: {         _id: SubDocumentId       }     }   });这将根据给定的ID查找父文档,然后从子文档中删除与给定条件匹配的元素。阅读更多关于拉这里.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB