Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoose pull命令从购物车中删除产品_Node.js_Json_Mongodb_Mongoose - Fatal编程技术网

Node.js mongoose pull命令从购物车中删除产品

Node.js mongoose pull命令从购物车中删除产品,node.js,json,mongodb,mongoose,Node.js,Json,Mongodb,Mongoose,//json输出 CartController.prototype.addToCart =(req, res, next) => { // Using mongoose in-built function "findbyID" Product.findById({_id : req.params.productId}).then( item => { if (!item) {res.status(400).send({message : "item not fou

//json输出

CartController.prototype.addToCart =(req, res, next) => {

    // Using mongoose in-built function "findbyID"
Product.findById({_id : req.params.productId}).then( item => 
{
    if (!item) {res.status(400).send({message : "item not found"})}
    Cart.findByIdAndUpdate(req.params.userId,
    {
        total_quantity : 0,
        total_price : 0,
        final_price : 0,
        "$push": {"products": {
                // Passing Data
                productid : item._id,
                MRP : item.offers.MRP,
                finalprice : item.offers.finalprice,
                discount :  item.offers.discount,
                organization : item.property.organization,
                brand : item.property.brand,
                color : item.property.color,
                weight : item.property.weight,
                category : item.property.category
            }
        },
        userid : req.params.userId   
    },
        { upsert: true, returnNewDocument : true}
    ).then(() => {
        res.status(200).send({message: "product added to cart"});
        }).catch(err => {
            res.status(500).send(err);
        });
}).catch (err => {
    res.status(500).send("item fetch related issue found", err);
});
};
//推车模型

[
{
    "_id": "5e5a58843ed45a235c32ac8c",
    "__v": 0,
    "createdAt": "2020-03-16T18:04:31.370Z",
    "updatedAt": "2020-03-16T18:41:23.068Z",
    "userid": "5e5a58843ed45a235c32ac8c",
    "inCart": false,
    "products": [
        {
            "category": "Home Decor",
            "weight": 300,
            "color": "Multicolor",
            "MRP": 5000,
            "productid": "5e6f4234564e2d1b74ba3383",
            "_id": "5e6fbfaf3818775ac010187e",
            "quantity": 1,
            "brand": "",
            "organization": "",
            "discount": 20
        },
        {
            "category": "Home Decor",
            "weight": 300,
            "color": "Multicolor",
            "MRP": 5000,
            "productid": "5e6b21458f7019378c4981ff",
            "_id": "5e6fbff53818775ac0101881",
            "quantity": 1,
            "brand": "",
            "organization": "",
            "discount": 20
        }
    ],
    "final_price": 0,
    "total_price": 0,
    "total_quantity": 0
}
]
//删除购物车项目

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;

var product = new Schema({
  productid : {
    type: Schema.Types.ObjectId,
    // required: true,
    ref: 'Product'
  },
  MRP : {
    type  : Number,
    // required : true
  },
  finalPrice : {
    type : Number
  },
  discount : {
    type : Number, default : 0
  },
  organization : {
    type  : String, default : null
  },
  brand : {
    type : String, default : null
  },
  color : {
    type : String
  },
  weight : {
    type : Number
  },
  category : {
    type : String,
    // required :true
  },
  quantity : {
    type : Number,
    // required : true,
    default : 1
  }
});

var cartSchema = new Schema({
  total_quantity : {type : Number, required : true, default: 0},
  total_price : {type : Number, required : true, default: 0},
  final_price : {type : Number, required : true, default: 0},
  products : [product],
  userid : { 
    type: Schema.Types.ObjectId,
    required: true,
    ref: 'Pujari'
  },
  inCart : {type : Boolean, default : 0}
  },
  {
    timestamps:true
  }
);

module.exports = mongoose.model('Cart', cartSchema);
所以,基本上我必须收集一个用于产品,另一个用于购物车,我的问题是如何从购物车中删除特定的产品,就像下面的json我必须收集产品一样。我只想删除“productid”:“5e6b21458f7019378c4981ff”的对象,我尝试了mongodb$pull运算符,但它不适用于此数据

最后我找到了解决办法,我犯了一个小错误


对我来说,您的更新正在运行(针对给定文档):


我发现了这一点,但无法应用于此类数据。请详细说明您希望删除的具体时间和产品的具体条件。
{$pull:{products:{“productid”:“5e6f4234564e2d1b74ba3383”}}
在更新中是否适用于您?@Joe不适用于此data@WernfriedDomscheit我只想删除“productid”所在的对象:“5e6b21458f7019378c4981ff”
CartController.prototype.deleteCartItem = (req, res, next) => {
Cart.update({userid : req.params.userId}, { $pull: { products : {productid: req.params.productId }}}, {multi: true})
};
//delete cart item
CartController.prototype.deleteCartItem = (req, res, next) => {
Cart.update({userid : req.params.userId}, { $pull: { products : {category: "Home" }}}, function (err, data) {
    if (err) res.send(err)
    else res.send(data)
})
db.collection.updateMany(
   { userid: "5e5a58843ed45a235c32ac8c" },
   { $pull: { "products": { productid: "5e6b21458f7019378c4981ff" } } }
)


{ 
    "acknowledged" : true, 
    "matchedCount" : 1.0, 
    "modifiedCount" : 1.0
}