Javascript MongoDB在具有多种语言的项目上以特定语言搜索文本
我有一个集合,它对来自其他两个集合的数据进行索引Javascript MongoDB在具有多种语言的项目上以特定语言搜索文本,javascript,mongodb,search,mongoose,indexing,Javascript,Mongodb,Search,Mongoose,Indexing,我有一个集合,它对来自其他两个集合的数据进行索引 { "type" : "page", "translation" : [ { "language" : "dutch", "content" : { "title" : "Dutch ap
{
"type" : "page",
"translation" : [
{
"language" : "dutch",
"content" : {
"title" : "Dutch appel peer banaan",
"intro" : "Dutch appel peer banaan",
"body" : "Dutch appel peer banaan"
}
},
{
"language" : "french",
"content" : {
"title" : "French pomme poire banane",
"intro" : "French pomme poire banane",
"body" : "French pomme poire banane"
}
},
{
"language" : "english",
"content" : {
"title" : "English apple pear banana",
"intro" : "English apple pear banana",
"body" : "English apple pear banana"
}
}
]
}
我希望能够在这个集合中搜索特定语言的关键字。例如,用英语搜索“pear”应该返回该项目。用荷兰语搜索同一个关键字(“pear”)应该不会返回任何结果
这是我用来搜索收藏的查询
Collection.find({
$text: {
$search: req.params.input,
$language: language, // language variable eg 'dutch'
},
})
集合上的索引创建如下(通过mongoose模式)
此搜索返回关键字存在于任何语言(而不是指定的语言)上的所有项目。是否有任何方法可以表明我只想搜索“语言”:“dutch”(或作为参数传递的任何其他语言)?请在您的问题中添加,您是如何创建内容和语言字段索引的?@turivishal我已经添加了如何索引字段的代码:)
Schema.index({
'translation.content.body': 'text',
'translation.content.title': 'text',
'translation.content.intro:': 'text',
}, {
name: 'SearchIndex',
});