使用update mongoDB从objectId数组中删除

时间:2017-04-13 06:47:29

标签: arrays node.js mongodb mongoose objectid

我有一个名为courier的模型,它有一个名为order的数组,order有一些模型顺序的ObjectIds,如何使用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);
                });

有没有办法不使用find,remove然后保存?

1 个答案:

答案 0 :(得分:1)

这将是实现您尝试的最有效的格式

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