我有多種語言數據,在MongoDB中與像
{
"_id" : ObjectId("56ebd619e07925a2286c1c3c"),
"translation" : [
{
"language" : "english",
"name" : "shahid Afridi",
"desc" : "batsmen",
"player" : "capten"
},
{
"language" : "spanish",
"name" : "shhid Ofridi",
"desc" : "batsmeen",
"player" : "capteen"
},
{
"language" : "french",
"name" : "hhid afrede is best",
"desc" : "batsmin",
"player" : "captn"
}
]
}
假設格式是西班牙用戶自帶然後我查詢
db.getCollection('t.m').find({$text: { $search: "best",$language: "es", }})
的問題是,它在整個翻譯陣列(未法語)搜索 我也試過,只搜索和我也嘗試基於陣列只返回特定語言的文檔其他太問題,但沒有運氣即
db.getCollection('t.m').find({$text: { $search: "capten",$language: "es", },translation: {$elemMatch: {language: "english"}}})
我的問題有部分
- 查詢只能在翻譯即尋找一種語言只有在執行西班牙語或英語
- 和翻譯陣列不是整個翻譯陣列查詢只返回特定的對象之後
記得我創造的名稱,說明和球員文本索引。任何幫助將不勝感激。
$文本索引不會以這種方式工作。它只是在索引下搜索文本而忽略其他因素。文本索引不會與文檔一起存儲。如果你想限制搜索域,使用正則表達式。 – Saleem
@Saleem怎麼樣只返回匹配的文檔 –
請具體說明。匹配什麼?文字,語言?當然語言 – Saleem