限制嵌套对象会导致rethinkdb查询

时间:2016-10-24 09:03:31

标签: rethinkdb

我想限制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)}; })的查询,但我无法找到如何首先订购消息...(如果有很多消息,该查询是否有效)

1 个答案:

答案 0 :(得分:2)

limit可以限制邮件数量:

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

orderBy可用于对数组进行排序:

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

如果对每个查询的消息进行排序,则存储已排序的消息列表可能更有效。