【问题标题】:Find current and previous documents from mongo db从 mongo db 中查找当前和以前的文档
【发布时间】:2019-03-15 12:29:51
【问题描述】:

我必须从单个查询中返回 2 个文档。我将在查询中给出的第一个值,第二个将是前一个值(已排序)。

我可以分别设计。下面的代码给出了单独的输出。

db.collection.find({'_id':'value1'})
db.collection.find({'_id': {'$lt': 'value1'}}).sort({'_id':-1}).limit(1)
  1. 如何组合它们?所以当我从我的应用程序执行时,它会返回 2 个输出
  2. 仅获取特定键而不是整个文档

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    您可以使用$lte 代替$lt 并使用2 进行限制 - 从逻辑上讲,这将是相同的操作

    db.collection.find({ _id: { $lte: 'value1' } }, { _id: 1, yourKey: 1 }).sort({_id: -1}).limit(2)
    

    编辑:要获取特定的键,您需要将它们指定为 .find() 的第二个参数

    【讨论】:

    • 谢谢!有用。无论如何,我可以从中得到一个特定的密钥而不是整个文档?我最后尝试了 [key] 但没有按预期工作。我只需要 2 个值而不是 2 个文档
    • @BharathKesavan 当然,修改了我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2019-11-30
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多