MongoDB查询到distinct,sort,limit和offset

Soh*_*han 5 sql mongodb

我正在寻找一个相当于以下的Mongo:

select distinct event_type_id from events
order by created_at desc
limit 10,20
Run Code Online (Sandbox Code Playgroud)

Event Mongo文件如下:

{
  _id: BSON(), event_type_id: 1, created_at: Date(), other_data: {}
}
Run Code Online (Sandbox Code Playgroud)

mad*_*ead 6

您可以在新的mongo版本上使用Aggregation Framework.以下是从以下开始的示例:

db.events.aggregate([
    {$sort:{"created_at":-1}},
    {$project:{"event_type_id":1}},
    {$group:{"_id":"$event_type_id"}},
    {$skip:10},
    {$limit:20}
])
Run Code Online (Sandbox Code Playgroud)

这是另一种方法,感谢@JoachimIsaksson

db.events.aggregate([
    {$group:{"_id":"$event_type_id", "created_at":{$max:"$created_at"}}},
    {$sort:{"created_at":-1}},
    {$skip:10},
    {$limit:20},
    {$project:{"event_type_id":1}}
])
Run Code Online (Sandbox Code Playgroud)

  • 我在想着什么; `{$ group:{_ id:"$ event_type_id",ord:{$ max:"$ created_at"}}},{$ sort:{"ord": - 1}},{$ project:{"event_type_id": 1}},{$ skip:10},{$ limit:20}`但是我在这里没有任何东西试试:) (2认同)