2016-07-25 17 views
2

Ist es möglich, $ und operator für mehrere $ text index suchen in mongo?

Ich habe Dokumente in tp Sammlung meiner db

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

Dann mache ich

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

Und es schlägt mit

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

aber Textindexsuche für Einzel Suche funktioniert so Ist es nicht möglich, mehrere Textsuchen mit $ und operator zu verknüpfen? Übrigens verwende ich Platzhalterzeichen $** für die Indizierung, weil ich über das gesamte Dokument suchen möchte.

Antwort

0

Base auf mongoDB Text & Tabellen und Bediener kann durch die Kombination von Angebot und Raum direkt in das Suchwort verwenden. Zum Beispiel suchen wir nach „SSL-Zertifikat“ und „Autorität Schlüssel“, so sollte die Abfrage wie:

> db.tp.find({'$text': {'$search': '"ssl certificate" "authority key"'}})