如何删除MongoDB一个document中数组的一项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除MongoDB一个document中数组的一项相关的知识,希望对你有一定的参考价值。

参考技术A 这个应该是不能,除非你修改你的数据结构,就像mysql,你把一个数组序列化之后存在一个text字段里面,你能select出来这个值的一部分么?你这个应该也是相同的情况。你把fun单独做表不就可以了。

使用更新 mongoDB 从 objectId 数组中删除

【中文标题】使用更新 mongoDB 从 objectId 数组中删除【英文标题】:Remove from array of objectId using update mongoDB 【发布时间】:2017-09-09 04:01:28 【问题描述】:

我有一个名为 courier 的模型,它有一个名为 order 的数组,orders 有一些模型 order 的 ObjectId,如何使用 update 或其他方法从 orders 数组中删除一个元素?

(例如删除具有特定 id 的订单)

这是我的模型:

快递员:

var courierSchema = new Schema(
    name:  type: String ,
    orders:[type:Schema.Types.ObjectId,ref:'order'],
);

我试过这段代码,但失败了:

courier.update(
                   name: 'Mahan'
               , 
                    $pull : 
                      orders: 
                          _id: order._id
                      
                  
                , (err, count, obj) => 
                    if(err) 
                        console.log(err);
                        return handleError(err, reply);
                    
                    console.log(count);
                );

有没有办法不使用查找、删除然后保存来做到这一点?

【问题讨论】:

【参考方案1】:

这将是实现您想要做的最有效的格式

db.collection.update(<cond to identify document, $pull: 'orders': 'id': <id> )

【讨论】:

以上是关于如何删除MongoDB一个document中数组的一项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React 从 MongoDB 数组中正确删除用户?

从MongoDb中数组的数组中删除一个元素

使用更新 mongoDB 从 objectId 数组中删除

如何在 MONGODB 中删除数组中的重复值?

如何删除 mongodb 特定文档中的数组中的项目? [复制]

如何从 MongoDB 文档中的双重嵌套数组中删除元素。