2017-06-11 3 views
0

mongodbに、配列内のほとんどの要素が最初に一致するソート順でドキュメントを返すようにクエリする必要があります。 例:私は果物を検索する場合MongoDB Array配列に一致するドキュメントを返すクエリ

Doc1 : {_id:1,fruits:['apple','orange','banana']} 

Doc2 :{_id:1,fruits:['grapes','apple','strawberry']} 

は:コレクションに[「りんご」、「オレンジ」]、その後いるDoc1が返されるべきです。 同じ質問を作成するのを手伝ってください。

答えて

0

あなたが最も適切な配列に一致するようにスコアリング技術を使用する必要があります。モンゴ語に関しては、全文検索を利用する。このソリューションは、次のリンク(複製/類似要件)MongoDB compare arraysで入手できます。

0

上記の質問によれば、MongoDBシェルで次のクエリを実行してみてください。

db.collection.find{fruits:{$all:['apple','orange']}} 

は、上記のクエリの$ですべてのオペレータは、配列フィールドの値が指定された配列フィルターに含まれるすべての値に一致する文書を取得

+0

質問は、すべての要素が完全に一致するとは限りません。たとえば、2番目の配列も修飾されますが、最初の配列よりもスコアが低くなります。 – dilsingi

関連する問題