2

这是我的架构

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 存储。

4

1 回答 1

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);
    }
);
于 2016-03-08T08:03:58.777 回答