MongoDB - 查找今天之前和之后的单个日期

时间:2017-01-17 14:25:48

标签: javascript mongodb meteor

我试图编写查询以查找今天之前和之后的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});

1 个答案:

答案 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/