2016-05-20 5 views
0

私はアプリケーションのメッセージング部分を開発しています。マングース、配列内の要素の位置を取得

私は会話を表すschemaを持っています。それはObjectIdの配列を含み、各ObjectIdはメッセージを参照します。

私は私のAPIに送信されたメッセージ_idにユーザーをしたいと思いますので、私はすべてのメッセージアレイ上_id S、彼が送信され後の1を取得することができます。 彼はまだ彼が持っていないすべてのメッセージで更新することができます。

私は_idの投稿をmessages: [ObjectId]の配列の中でクエリに送りますか?

答えて

2

Mongoはこのタイプのクエリをサーバー上でサポートしていないため、このアプローチをとる場合、アプリケーション内で行う必要があります。

可能な他のアーキテクチャを検討してください。まず、最後のObjectIdの位置を取得した後、後続のクエリをどのように作成しますか?代わりに、_idでエンコードされたタイムスタンプを使用してメッセージコレクションを直接照会して、新しいメッセージのみを返すこともできます。

db.messages.find({_id: {$gt: lastViewedMessage._id}}) 
+0

あなたのソリューションは魅力的です。 – FrenchFalcon

関連する問題