私はmessages
の配列を持つChat
モデルを持っています。これはMessage
10です。各Message
には、dateSent
プロパティとプロパティの両方があります。 Message
の項目は、がに埋め込まれており、はではありません。mongoose配列からの日付で並べ替え
は、どのように最新のによってIソートChat
sがdateSent
で最初にしてMessage
(dateViewed
すなわち、空)を閲覧することはできませんか? (Chat
もusers
配列を持っていることに注意してください)
これは私がこれまで試したものです(... Facebookのメッセンジャーの行動を考える):
Chat.find({users._id: userId}).sort({messages.dateViewed: -1, messages.dateSent: -1}).exec(function(err, chats){
// handle err
// handle no docs found
// handle docs found
});
上記のように、動作するようには思えませんChat
は別の順序で出てきます(sort()
なしと同じです)。何かご意見は?
EDIT:提案答え私はmessage
配列でMessage
オブジェクトをソートしたくないので、私を助けるのではなく、クエリの結果を並べ替えるChats
、Message
オブジェクトこれらの日付によってませんでした配列messages
を保持します。
私はどのように 'メッセージわからないんだけど.dateViewd:-1'が解釈されているので、引用符を追加することをお勧めします。すべてがうまくいくことを確認してください:) –
@AndreyPopovはい、私は"{" messages.dateViewed ":-1、" messages.dateSent ":-1}'に変更しましたが、まだ動作しません... – Joum
[Mongodb:配列オブジェクトによるドキュメントのソート] (http://stackoverflow.com/questions/5315658/mongodb-sort-documents-by-array-objects) – TomG