MongoDB聚合和分页

MongoDB聚合和分页,mongodb,mongodb-query,Mongodb,Mongodb Query,我在每个文档中都有带有内部id字段的文档,以及添加此文档的日期。可能有许多文档具有相同的id(同一文档的不同版本),但这些文档的日期总是不同的。在一些查询中,我希望从同一文档的所有版本(具有相同的id字段)中只带来一个与指定日期相关的文档,并希望通过分页(页面中的50行)显示它们。那么,在MongoDB中是否有机会做到这一点(操作-按某个字段查询文档,按id字段对文档进行分组,按日期字段排序,只取第一个字段,所有这些都应该使用分页) 请参见示例:这些是文档,其中一些是不同的文档,如文档A、B和C

我在每个文档中都有带有内部id字段的文档,以及添加此文档的日期。可能有许多文档具有相同的id(同一文档的不同版本),但这些文档的日期总是不同的。在一些查询中,我希望从同一文档的所有版本(具有相同的id字段)中只带来一个与指定日期相关的文档,并希望通过分页(页面中的50行)显示它们。那么,在MongoDB中是否有机会做到这一点(操作-按某个字段查询文档,按id字段对文档进行分组,按日期字段排序,只取第一个字段,所有这些都应该使用分页)

请参见示例:这些是文档,其中一些是不同的文档,如文档A、B和C,还有一些是相同文档的版本, like _id:1、2和3都是同一文档A的版本

文件A{ _id:1, “id”:“A”, “作者”:“价值”, “日期”:“2015-11-05” }

文件A{ _id:2, “id”:“A”, “作者”:“价值”, “日期”:“2015-11-06” }

文件A{ _id:3, “id”:“A”, “作者”:“价值”, “日期”:“2015-11-07” }

文件B{ _id:4, “id”:“B”, “作者”:“价值”, “日期”:“2015-11-06” }

文件B{ _id:5, “id”:“B”, “作者”:“价值”, “日期”:“2015-11-07” }

文件C{ _id:6, “id”:“C”, “作者”:“价值”, “日期”:“2015-11-07” }

我想查询所有在“作者”字段中有“值”的文档。 并从这些文件中仅带一份文件,其中每个文件的最新日期为 指定的日期,例如2015-11-08。因此,我预计结果是: _id:3、id:5、id:6 还有分页,例如每页10个文档

谢谢

  • 两个文档不能具有相同的
    \u id
    。默认情况下,
    \u id
    上有一个唯一的索引
  • 按照1。您需要有一个复合
    \u id
    字段,其中包括日期:
  • 要获取指定日期的有效版本,查询变得相当简单:

    db.yourColl.find({ 
      "_id":{
        "docId": idToFind,
        // get only the version valid up to a specific date...
        "date":{ "$lte": someISODate }
      }
    })
    // ...sort the results descending...
    .sort("_id.date":-1)
    // ...and get only the first and therefor newest entry
    .limit(1)
    
  • 两个文档不能具有相同的
    \u id
    。默认情况下,
    \u id
    上有一个唯一的索引
  • 按照1。您需要有一个复合
    \u id
    字段,其中包括日期:
  • 要获取指定日期的有效版本,查询变得相当简单:

    db.yourColl.find({ 
      "_id":{
        "docId": idToFind,
        // get only the version valid up to a specific date...
        "date":{ "$lte": someISODate }
      }
    })
    // ...sort the results descending...
    .sort("_id.date":-1)
    // ...and get only the first and therefor newest entry
    .limit(1)
    

  • 你有什么可以查询的?身份证?日期?一系列的日期?您是否只想获取最新的id?到目前为止,您创建了哪些不起作用的查询?您好,感谢您的回复,请查看更新的问题和示例。一般来说,我希望在某个字段中显示所有具有“值”的文档,并且从每个不同的文档中,我只希望显示指定日期(例如2015-11-08)的最新版本(由日期字段指定)。谢谢你有什么可以查询的?身份证?日期?一系列的日期?您是否只想获取最新的id?到目前为止,您创建了哪些不起作用的查询?您好,感谢您的回复,请查看更新的问题和示例。一般来说,我希望在某个字段中显示所有具有“值”的文档,并且从每个不同的文档中,我只希望显示指定日期(例如2015-11-08)的最新版本(由日期字段指定)。感谢可能我不清楚,每个文档的_id当然不同,但是,假设每个文档中的“my_id”-字段是我的id,是相同的。谢谢你的回复,你能告诉我如何在这样的查询中进行分页吗?再次感谢!!!!也许我不清楚,每个文档的_id当然不同,但是,假设每个文档中的“my_id”-字段是我的id,是相同的。谢谢你的回复,你能告诉我如何在这样的查询中进行分页吗?再次感谢!!!!