Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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-MongoError:Can';t规范化查询:BadValue错误顺序数组[2]_Node.js_Mongodb_Node Mongodb Native - Fatal编程技术网

node.js-MongoError:Can';t规范化查询:BadValue错误顺序数组[2]

node.js-MongoError:Can';t规范化查询:BadValue错误顺序数组[2],node.js,mongodb,node-mongodb-native,Node.js,Mongodb,Node Mongodb Native,我有一个具有以下文档结构的数据库: { “_id”:ObjectId(“520bea012ab230549e749cff”), “天”:1, “时间”:54, “州”:“佛蒙特州”, “机场”:“BTV”, “温度”:39, “湿度”:57, “风速”:6, “风向”:170, “电站压力”:29.6, “海平面气压”:150 } 我需要找到每个“州”的最高“温度”(例如,有100个文件带有“州”:“佛蒙特州”),并在该文件中添加条目“月高”:true(温度最高) 这是我的密码: 但是当我在s

我有一个具有以下文档结构的数据库:

{
“_id”:ObjectId(“520bea012ab230549e749cff”),
“天”:1,
“时间”:54,
“州”:“佛蒙特州”,
“机场”:“BTV”,
“温度”:39,
“湿度”:57,
“风速”:6,
“风向”:170,
“电站压力”:29.6,
“海平面气压”:150
}
我需要找到每个“州”的最高“温度”(例如,有100个文件带有“州”:“佛蒙特州”),并在该文件中添加条目“月高”:true(温度最高)

这是我的密码:

但是当我在shell中运行程序时,我得到以下错误:

MongoError:无法规范化查询:BadValue错误顺序数组[2]


您应该传入一个对象,而不是数组

cursor.sort({"State": 1, "Temperature": -1});

你只需要“状态”和“温度”,对吗?所以,在排序之前,尝试投影它。我已经测试了以下代码,并且成功了:

var query = {};
var projection = { 'State':1, 'Temperature':1 };
var options = { 'sort' : [['State',1], ['Temperature',-1]] };

var cursor = db.collection('data').find(query, projection, options);

此变体引发错误-TypeError:无法读取nullWell的属性“State”,这是应用程序不同部分中的不同错误。看起来您可能有一个文档没有“State”属性,因此当您尝试执行比较时,会出现错误。否每个文档中都有State的属性。。。我查过了。。。我在cycle中粘贴了code-console.dir(doc)并获得了所有具有此属性的文档。。。看来我开始理解这个问题了。。。回调游标。每个返回“null”。。。但是我不明白它是如何影响循环性能的……关于Node.js驱动程序,这个答案是错误的。您需要使用数组而不是json对象来保持排序顺序。关于这一点,目前还不太清楚,但官方的教程视频是这样的。