使用更新 mongoDB 从 objectId 数组中删除
Remove from array of objectId using update mongoDB
我有一个名为 courier 的模型,它有一个名为 order 的数组,orders 有一些模型顺序的 ObjectId,我如何使用更新或其他方式从 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);
});
有没有不使用查找、删除然后保存的方法来做到这一点?
这将是实现您的目标的最有效格式
db.collection.update({<cond to identify document}, {$pull: {'orders': {'id': <id>}}} )
我有一个名为 courier 的模型,它有一个名为 order 的数组,orders 有一些模型顺序的 ObjectId,我如何使用更新或其他方式从 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);
});
有没有不使用查找、删除然后保存的方法来做到这一点?
这将是实现您的目标的最有效格式
db.collection.update({<cond to identify document}, {$pull: {'orders': {'id': <id>}}} )