2016-12-20 5 views
0

現在Gmailのラベルシステムと同様のシステムを設計中です。私の "Messages"コレクションでは、現在のMessageに関連付けられたラベルのIDを含む配列を保持するフィールドがあり、これは別のCollectionに保持されています。いくつかのメッセージのためのJSONデータは次のようになります。アレイデータフィールドのエレメントでメテオコレクションをフィルタリングする方法は?

{ 
    "_id" : "W9uCWJCqx8ozsbX6t", 
    "name" : "Issue", 
    // ... some more data fields ... 
    "labels" : [ "R2syna2dnRdf4TDfC", "FHrjNbAT7Da2dRR5F" ] // IDs of labels in an array 
} 

どのように私はそのlabelsフィールドに特定のラベルIDを含むすべてのメッセージを検索するには.find()方法の線に沿って何かを使用するのでしょうか?

+0

で見つけることができます – Veeram

+0

@SagarReddyありがとうございました!私は 'find()'が配列自体を検索することは理解していませんでした。 – david3de

答えて

0

MongoDBの$elemMatch演算子を使用できます。

例クエリ: `:

Messages.find({labels : {$elemMatch : {$eq: id}}}); 

よりユースケースは、あなたがこの` db.messages.find({ " " のラベル})のような何かを行うことができます docs

関連する問題