2016-11-11 151 views
1

我在我的mongo數據庫中有這樣一個集合,我們假設它被稱爲分類。MongoDB複合文本搜索

{ 
    "_id" : ObjectId("5810e15a762a39b41912a131"), 
    "validName" : "Eros", 
    "idUser" : ObjectId("1") 
} 
{ 
"_id" : ObjectId("5810e15a762a39b41912a132"), 
"validName" : "Eros", 
"idUser" : ObjectId("2") 
} 

我已經創建了一個複合索引,以便能夠搜索我想要的兩個值,比如這個。

db.taxonomic.createIndex({"idUser":1,"validName":1}) 

現在,我希望能夠搜索並從它那裏得到回報,只有當雙方的參數都在收藏的同一文檔中發現,這裏是我的嘗試:

db.taxonomic.find({$text:{$search:"Eros 2"}},{idUser:1,validName:1}) 

的這個方法的問題在於它會返回任何匹配的「Eros」或「2」,我想要的是在集合的文檔中匹配「Eros」和「2」時返回值。

謝謝你的幫助!

+0

您需要添加一個文本索引,你能告訴我哪個領域你創建的文本索引? –

回答

0

我不認爲你需要它的文本索引,如果你只想要特定的字符串

db.taxonomic.find({"$or" : [{"validName" : "Eros"},{"validName" : "2"}]},{idUser:1,validName:1}) 
+0

我正在尋找一個'和'操作符,但它仍然回答了我的問題。謝謝。 –