我试图编写查询以查找今天之前和之后的2个单独文档,我需要将值作为游标返回,因为这是Meteor出版物(可能不相关)。
我目前正在使用此
const today = new Date();
const before = db.lesson.findOne({lsn_id:kjsflf, lsn_dt:{$lte:today}}, {limit:1});
const after = db.lesson.findOne({lsn_id:kjsflf, lsn_dt:{$gte:today}}, {limit:1});
理想情况下,结果会是这样的:
return db.lesson.find({BEST QUERY EVER});
答案 0 :(得分:2)
如果您尝试合并这两个查询,可以尝试使用MongoDB' s $或:
db.lesson.find({
lsn_id: kjsflf,
$or: [
{ lsn_dt: { $lte: today }},
{ lsn_dt: { $gte: today }}
]}, { limit: 2 });
如果在"今天"之前只存在一个且只有一个文档,这种方法很有效。在"今天"之后只有一个文件。如果有其他文件,它将检索它找到的前两个文件。
https://docs.mongodb.com/manual/reference/operator/query/or/