我想限制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)}; })
的查询,但我无法找到如何首先订购消息...(如果有很多消息,该查询是否有效)
答案 0 :(得分:2)
limit
可以限制邮件数量:
conversations.merge(conversation => {
messages: conversation('messages').limit(3)
})
orderBy
可用于对数组进行排序:
conversations.merge(conversation => {
messages: conversation('messages').orderBy('createdAt')
})
如果对每个查询的消息进行排序,则存储已排序的消息列表可能更有效。