最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

MongoDB的

运维笔记admin11浏览0评论

MongoDB的

MongoDB的

你们可以发现,为什么下面的批量查询是行不通的。我没有得到任何错误,它只是简单地不执行对数据库的修改。当我执行使用猫鼬的findOneAndUpdate方法相同的查询它工作得很好。

请看下面的代码:

var bulk = models.Cart.collection.initializeOrderedBulkOp()

        bulk.find({
            $and: [
                { $or: [{ userId }, { sessionId }] },
                { 'cartProducts.productId': { $ne: mongoose.Types.ObjectId(args.data.productId) } },
                { checkedOut: false }
            ]
        }).updateOne({
            $push: {
                cartProducts: { productId: mongoose.Types.ObjectId(args.data.productId), quantity: args.data.quantity }
            }
        })

        bulk.find({
            $and: [
                { $or: [{ userId }, { sessionId }] },
                { 'cartProducts.productId': mongoose.Types.ObjectId(args.data.productId) },
                { checkedOut: false }
            ]
        }).updateOne({
            $set: {
                'cartProducts.$.quantity': args.data.quantity
            }
        })

bulk.execute()  

同样,在执行findOneAndUpdate当执行这些相同的查询工作得很好

models.Cart.findOneAndUpdate({
        $and: [
                { $or: [{ userId }, { sessionId }] },
                { 'cartProducts.productId': { $ne: mongoose.Types.ObjectId(args.data.productId) } },
                { checkedOut: false }
            ]
        }, {
            $push: {
                cartProducts: { productId: mongoose.Types.ObjectId(args.data.productId), quantity: args.data.quantity }
            }
        }, 
{ new: true })

谢谢!

回答如下:

问题是在userId我经过一个string,但它需要一个ObjectId

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论