限制嵌套对象导致 rethinkdb 查询

Limit nested objects results in rethinkdb query

我想限制 Rethinkdb 查询中嵌套对象的数量。假设我与嵌套消息进行对话。

[对话]

[{
    id: "fgh675",
    name: "Some conversation",
    messages: [{
        id:"jhu432",
        contents: "Hello world!",
        createdAt: "2016-01-01 00:01:01"
    },
    {
        id:"bgj876",
        contents: "Hello earth",
        createdAt: "2016-01-01 00:01:01"
    }]
}]
  1. 如何限制消息对象的数量?

  2. 事件更好,我如何编写一个只返回最后一条消息的查询 .merge(function(c) { return {msg: c("messages").slice(-1)}; }),但我找不到如何先排序消息...(如果有,该查询是否有效消息很多)?

limit可以限制留言条数:

conversations.merge(conversation => {
  messages: conversation('messages').limit(3)
})

orderBy可以用来对数组进行排序:

conversations.merge(conversation => {
  messages: conversation('messages').orderBy('createdAt')
})

如果在每次查询时对邮件进行排序,存储已排序的邮件列表可能会更有效。