gpt4 book ai didi

node.js - Nodejs MongoDB findAndModify 排序选项不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:16 25 4
gpt4 key购买 nike

问题陈述:collection.findAndModify() 的排序选项始终更新给定 mongoDB 文档中的最低值。

示例数据:

{ "State" : "Florida", "Temperature" : 83 }  
{ "State" : "Florida", "Temperature" : 28 }
{ "State" : "Florida", "Temperature" : 82 }
{ "State" : "Any other", "Temperature" : 58 }
{ "State" : "Florida", "Temperature" : 33 }

要求:
添加month_high:true,针对最高温度文档。

NodeJS 代码:

var query = {
'State': "Florida"
};
var sort = ['Temperature', 'desc'];
var operator = {
'$set': {
'month_high': true
}
};
var options = {
'new': true
};

db.collection('readings').findAndModify(query, sort, operator, options, function(err, doc) {
if (!doc) {
console.log('no doc');
} else {
console.log(doc);
};
});

结果总是相同的,即温度最低的文档被更新。根据以上数据,结果为:{ "State": "Florida", "Temperature": 28, "month_high": true }
现在,为了检查排序的行为,我也将其更改为升序,但结果相同,无论数据在排序之前或之后的顺序如何,它总是选取最小的温度。

问题:
你能告诉我我做错了什么以及哪里做错了吗?

最佳答案

您的sort参数的格式不正确。其中任何一个都应该有效:

var sort = [['Temperature', 'desc']];

或者

var sort = { Temperature: -1 };

关于node.js - Nodejs MongoDB findAndModify 排序选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26049510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com