2016-07-25 9 views
2

mongoで複数の$ textインデックスを検索すると$と演算子を使用できますか?

私は私のデシベルのTPコレクション

> db.tp.find() 
{ "_id" : ObjectId("...."), "name" : "tp", "dict" : { "item1" : "random", "item2" : "some" } } 
{ "_id" : ObjectId("...."), "name" : "tp", "dict" : { "item3" : "rom", "item4" : "tttt" } } 

中の文書がその後、私は

> db.tp.createIndex({ "$**": "text" }) 
> db.tp.find({ $and: [{$text : { $search: "random" } }, {$text : { $search: "redruth" } }]}) 

を行う持っており、それが

Error: error: { 
"waitedMS" : NumberLong(0), 
"ok" : 0, 
"errmsg" : "Too many text expressions", 
"code" : 2 
} 

で失敗したが、テキストインデックス検索は非常に単一の検索のために働きます$と演算子で複数のテキスト検索をバインドすることはできないのですか?ところで、文書全体を検索したいので、ワイルドカード文字$**をインデックスに使用しています。

答えて

0

ベースに、AND演算子は、引用符やスペースを組み合わせることにより、検索用語に直接使用することができます参照してください。たとえば、「ssl certificate」と「authority key」を検索すると、クエリーは次のようになります。

> db.tp.find({'$text': {'$search': '"ssl certificate" "authority key"'}}) 
関連する問題