查找数据时遇到问题。我要条件: 1.匹配ID 2.时间范围
只在id上使用find()时才能正常工作,但是当我尝试使用两者或只是时间时会出现轮询错误。这就是我到目前为止所拥有的:
findRange: function (dateRange, callback) {
ExpenseModel.find(
{telegramId: dateRange.telegramId,
time:{
$gt: ISODate(dateRange.from),
$lte: ISODate(dateRange.to)
}},
function (err, existingSequence) {
if (err) {
callback(err, null);
return;
}
if (existingSequence) {
callback(null, existingSequence);
} else {
console.log("not found")
callback(null, false);
}
}
);
}
答案 0 :(得分:0)
您必须使用$and
属性
findRange: function (dateRange, callback) {
ExpenseModel.find({$and : [
{ telegramId: dateRange.telegramId},
{ time:{
$gt: ISODate(dateRange.from),
$lte: ISODate(dateRange.to)
}
}
]
},
function (err, existingSequence) {
if (err) {
callback(err, null);
return;
}
if (existingSequence) {
callback(null, existingSequence);
} else {
console.log("not found")
callback(null, false);
}
}
);
}