如何使用 mongoose 和 nodejs 删除模型中关于 id 的项目

How to delete a item in model respect to the id using mongoose and nodejs

这是我的架构

var purchaseOrderModel = function () {
    var itemSchema = mongoose.Schema({
        strBarCode: {type: String },
        strItemName: {type: String },
        strQuantity: {type: String }
    });

    var purchaseOrderSchema = mongoose.Schema({
        strSupplierID: {type: String, required: true },
        strInvoiceNo: {type: String,required: true },       
        dteInvoiceDate: {type: Date, required: true },

        items: [itemSchema],

        created_by: { type: mongoose.Schema.Types.ObjectId, ref: 'user' }
    });



    return mongoose.model('purchaseorder', purchaseOrderSchema);

};

PurchaseOrder.find({items._id:req.params.itemid}, function (err, items) {
    return items.remove(function (err) {
    });         

});

如何根据 id 删除采购订单架构中的项目。 使用 itemSchema 存储项目。

您可以使用 $pull 更新运算符从数组中删除项目,如下所示:

PurchaseOrder.update(
    { "items._id": req.params.itemid },
    {
        "$pull": {
            "items": {"_id": req.params.itemid}
        }
    },
    function (err, doc) {
        if(err) { /* handle err */}
        console.log(doc);
    }
);