私はこのようになりますメッセージのMongoのコレクションがあります。モンゴは、ソートの計算条件
{
'recipients': [],
'unRead': [],
'content': 'Text'
}
受信者は、ユーザIDの配列で、未読はまだ開いていないすべてのユーザーの配列ですメッセージ。それは意図したとおりに働いて、私はそれが最初の20件の結果を返すように、すべてのメッセージのリストを照会する必要があり、最初の未読のものを優先、のようなもの:
db.messages.find({recipients: {$elemMatch: userID} })
.sort({unRead: {$elemMatch: userID}})
.limit(20)
しかし、それは動作しません。特定の基準に合致するかどうかに基づいて結果の優先順位付けを行う最良の方法は何ですか?
これは完全に機能しました。ありがとうございました!唯一のコメントは、$ setIsSubSetを$ setIsSubsetに変更するまでMongoがエラーを投げたことです。 – beatniknight
@beatniknight典型的な私。ドキュメンテーションのリンクは正しかったですが、私のラクダの脳はそれが2つの言葉であると言い続け、それをそのようにタイプし続けます。 –