我正在使用mongodb。
我正在使用聚合查询。我在其中添加$match
管道以匹配子文档。
var aggregatePipes= [{ "$unwind": "$payload" }, { "$sort": { "payload.r": 1 } }];
aggregatePipes.push({ '$match': { 'payload.r': { '$ne': 0 } } });
我的文档就像这样
{
"_id" : ....,
"activationId" : ....,
"parentActivationId" : ....),
"m" : "c9:8c:2f:61:e7:f8",
"status" : "new",
"payload" : [
{
"r" : -67,
"t" : ISODate("2017-12-18T11:42:43.964Z")
},
{
"r" : 0,
"t" : ISODate("2017-12-18T11:42:47.073Z")
}
],
"createdAt" : ISODate("2017-12-18T11:43:51.732Z"),
"updatedAt" : ISODate("2017-12-18T11:43:51.732Z"),
"deviceId" : "DEVICEID"
}
如果我使用任何数字而不是0,那么它可以正常工作。但是不能使用0。
谁能告诉我在这里缺少什么?
答案 0 :(得分:1)
JS可能会在mongo的某些条件下将$ne: 0
解析为$ne == false
。您可以尝试使用$ne: Number( 0 )
代替