我有多种语言数据,在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