2016-10-24 11 views
4

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)}; })ですが、最初にメッセージを注文する方法はわかりません。

答えて

2

limitメッセージの数を制限することができます。

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

orderByは配列をソートするために使用することができます。

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

あなたはすべてのクエリにメッセージを並べ替える場合は、それがかもしれ既にソートされたメッセージリストを格納する方が効率的です。

関連する問題