2016-12-07 5 views
0

MongoDBで次のクエリを使用しようとしています。
1)db.products.createIndex({name: "text"、category.name ': "text"})
これでインデックスが作成されます。 2)

が今私のクエリは
db.products.findです({$テキスト:{$検索: "日月タペストリー"}}これは日、月、およびタペストリーに応じてデータをもたらすでしょう
)。

3)ですが、このようなデータを取得したいと考えています。その太陽、月やタペストリーが

を表示された後、次いで
exectマッチで          A)まずデータ列 日月タペストリー
          B)(注:DBコールは1回限りである必要があります)

答えて

1

textSco結果セットをソートする再:

db.products 
     .find({ $text : { $search : "Sun moon Tapestry" } }, { score: { $meta: 'textScore' } }) 
     .sort({score:{$meta: "textScore"}}) 

あなたは2つのテキスト・インデックスを持っているので、あなたがnamecategory.nameの重みをも定義することができます。 https://docs.mongodb.com/v3.2/tutorial/control-results-of-text-search/

PSは:何も関連angularjs

EDITがあります:あなたはマングースを使用する場合、クエリは、あなたができる角度の統合のために、あなたのモデルに

YourProduct 
     .find({ $text : { $search : "Sun moon Tapestry" } }, { score: { $meta: 'textScore' } }) 
     .sort({score:{$meta: "textScore"}}) 
     .exec(function (err, data) { 
      if (err) 
       res.json(err); 
      else { 
       res.json(data) 
      } 
     }); 

を照会する必要があり、同じまま$ http https://docs.angularjs.org/api/ng/service/$httpを使用し、あなたのajax呼び出しを行うサービスを作成してください。

+0

これはすばらしく、期待される結果が得られました。これは私の端末でのみ動作していますが、結果を取得するために表現するためにクエリを送信している間に、あなたはangularjsで投獄してください。これは本当に印象的です。 –

+0

私の編集を参照してください。 – alfredopacino

+0

はい私はこのようにおそらく私のコードのどこかで間違いを犯しました。私が洗練されたコード構造を解決したとき、それは私の端末で働いています。再度、感謝します!!。 –

関連する問題