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

时间:2016-03-08 07:27:01

标签: node.js mongodb mongoose mongoose-schema

这是我的架构

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) {
    });         

});

如何删除purchaseOrderSchema中与id相关的项目。 使用itemSchema存储项目。

1 个答案:

答案 0 :(得分:2)

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

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