我有一个 mongoDB 集合,其中包含一个文档列表,其中包含(除其他项目外)每种不同类型设备的时间戳和地址。设备地址为十六进制(例如 0x1001、0x2001、0x3001 等)。
在服务器端,我正在尝试查询集合以查看特定日期范围内存在哪些文档,以及设备列表
Collection.find(
{"addr": data.devices.Controls, "time": {$gte:d0, $lte:d1}},{},
function (err, docs) {
if( err|| !docs) console.log("No data found");
else {
//I've simplified the code here...
}
}
);
d0 和 d1 是我的开始和结束日期......而 data.devices.Controls 是设备地址列表。如果我添加该行:
console.log("Controls: " + JSON.stringify(data.devices.Controls));
我可以在服务器端看到它打印出我正在寻找的地址列表(实际的打印语句如下所示:Controls:[“0x1001”,“0x2001”,“0x3001”]。)
但是,这个 find 语句似乎没有从查询中返回任何数据。没有错误(因为我没有看到“未找到数据”消息)......它似乎没有返回任何数据。奇怪的是,如果我从 Controls 数组中指定一个特定元素(类似于 data.devices.Controls[0]...),那么它就可以正常工作。我可以指定数组中的任何元素并且它可以工作......但是通过在参数中传递整个数组,它似乎不起作用。有谁知道为什么会发生这种情况(以及如何解决它)?