Mongoose findOneAndUpdate 使用多个字段更新操作符

4
我希望您能在单个更新中设置文档的最小值、最大值和增量,但无法找到正确的语法。
这适用于增加文档中的计数:
Temperature.findOneAndUpdate(dailyQuery,
    { $inc: { temperature_sum : thermometer.temperature, count : 1 }},
    {upsert : true}, function(err, dailyTemp) {
    if (err) throw err;
    console.error(dailyTemp);
});

我希望还能设置最小值和最大值,我认为更新命令应该是这样的:

Temperature.findOneAndUpdate(dailyQuery,
    { $inc: { temperature_sum : thermometer.temperature, count : 1 },
        $max :{ max_temp : thermometer.temperature},
        $min :{ min_temp : thermometer.temperature}},
    {upsert : true}, function(err, dailyTemp) {
    if (err) throw err;
    console.error(dailyTemp);
});

但我得到了 <\p>。
MongoError: exception: Invalid modifier specified $min

这里我错过了什么?

当我尝试运行你的代码时,它可以正常工作。$min 操作符是在 MongoDB 2.6 中添加的,你使用的版本比这更旧吗? - JohnnyHK
谢谢,问题就在这里,我在树莓派上使用的是2.4.10版本。我没有想到在mongo本身中手动运行命令,但是确实$max和$min无效。如果您将此设置为答案,我会接受它。 - Bacon
1个回答

4

你的代码没问题,但是$min(和$max)操作符是在MongoDB 2.6中引入的,而你正在使用2.4.10。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接