限制嵌套对象会导致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"
    }]
}]

>我如何限制消息对象的数量?
>事件更好,我怎么能写一个只返回最后一条消息的查询.merge(function(c){return {msg:c(“messages”).slice(-1)};}),但我找不到如何首先订购消息…(如果有很多消息,该查询是否有效)?

最佳答案 限制可以限制消息的数量:

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

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

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

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

点赞