Javascript Mongoose:价值不通过$inc递增

Javascript Mongoose:价值不通过$inc递增,javascript,mongodb,mongoose,mongodb-query,Javascript,Mongodb,Mongoose,Mongodb Query,我为这个问题挣扎了好几天。出于某种未知的原因,无论我尝试何种替代方法,特定字段(“reviewCounts”)都不会递增 这是我的模式 let itemSchema = new mongoose.Schema({ rank: Number, image: String, name: String, title: String, count: Number, category: String,

我为这个问题挣扎了好几天。出于某种未知的原因,无论我尝试何种替代方法,特定字段(“reviewCounts”)都不会递增

这是我的模式

let itemSchema = new mongoose.Schema({
        rank: Number,
        image: String,
        name: String,
        title: String,
        count: Number,
        category: String,
        ratings: Object,
        reviewCounts: Number,
        reviews: Array,
        tags: Object,
    })
这是更新方法:

Item.findOneAndUpdate({name: item,title:title}, {
     $inc:{"reviewCounts":1},
     $set:averageQuery,
     $inc:query
     },{strict:false},
     function (err, data) {
     }
}

$inc
完全可以在“查询”中找到,而不是增加“查看计数”。我曾尝试使用
$set
手动设置该值,但也不起作用。我仔细检查并确认该字段符合预期的
int32
。这个问题背后的原因可能是什么?

当您以这种方式构建更新语句时:

{
    $inc:{"reviewCounts":1},
    $set:averageQuery,
    $inc:query
}
您正在复制JavaScript对象中的
$inc
键。JavaScript将此类代码解释为:

{
    $set:averageQuery,
    $inc:query
}
因此,只需最后一次使用特定键“wins”,您就失去了
reviewCounts
部分

您需要确保只有一个
$inc
,并且可以使用spread运算符组合您的
$inc

$inc:{ ...query, "reviewCounts":1 }

你能试着用单个的
$inc
$inc:{…查询,“reviewCounts”:1}
?@mickl它成功了!非常感谢。我能知道你的方法有效的原因吗?mongoose不允许多个$inc吗?