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',
});