2016-07-11 22 views
1

の文字列一致の一部のためのmongo検索私の検索文字列がある:「私たちは火星にあるHello World」の言葉配列

私のレコードのタグは以下のとおりです。

  1. 言葉:[ "地獄"、 "ブブの世界"]
  2. ワットords:[ "我々は"、 "クッキー"]
  3. 言葉:私は唯一のレコード番号2場所浴する取得したい

[、 "W" "火星ノノあります"] 1つの配列要素のが一致します

答えて

2

これはあなたが探している正確な答えではありません。しかし、私は、あなたが要件と可能な解決策について再考するために私の考えを概説しました。

ソリューションの設計方法について再考する必要があります。通常、データベースの属性にはテキストが多く、検索文字列の単語数が少ないため、単一のMongoクエリで期待したことを達成できない場合があります。あなたの質問によると、あなたの要件は反対です。

MongoDBの典型的なテキスト検索の可能な解決策の1つは、 "Text" Indexであり、findでは "$ text"と "$ search"を使用します。

https://docs.mongodb.com/manual/reference/operator/query/text/#op._S_text

テキストインデックス作成: -

db.collectionname.createIndex({単語: "テキスト"})

db.words.find({ $text: { $search: "Hello world we are on mars", $caseSensitive: true } }) 

結果は次のようになり:1と3

pharseをエスケープした二重引用符(\ ")で囲んでフレーズ検索を実行することもできます。