Javascript Mongoose-$文本搜索在$或条件内中断

Javascript Mongoose-$文本搜索在$或条件内中断,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试使用Mongoose搜索文档,如果用户在请求中发送了一些文本,我会在查询中设置OR条件,用简单的英语说“查看此文本是否与字段X或Y匹配”: var query = { date: { $gte: start_date, $lt: end_date}, author: req._user._id, link: { $eq: link}, }; 将始终对上述字段进行搜索。然后,我检查文本是否存在,如果是,我想根据documents$

我正在尝试使用Mongoose搜索文档,如果用户在请求中发送了一些文本,我会在查询中设置OR条件,用简单的英语说“查看此文本是否与字段X或Y匹配”:

var query = {
        date: { $gte: start_date, $lt: end_date},
        author: req._user._id,
        link: { $eq: link},
    };
将始终对上述字段进行搜索。然后,我检查文本是否存在,如果是,我想根据documents$text索引进行搜索,看看它是否与搜索文本匹配,或者我想看看搜索文本是否包含在documents'tags'数组中。此或条件引发$text索引错误

if (searchText.length) {

        query["$or"] = [
            {
                "$text": { "$search": searchText}
            },
            {
                "tags": { "$in": [searchText]}
            }
        ];
    }
我得到了mongodb错误,比如“MongoError:错误处理查询”和“无查询解决方案”

我已经把它缩小到$text索引。如果我在OR条件中替换$text index字段,并将其替换为一个简单的字段匹配,则一切正常:

query["$or"] = [
            {
                "title":  "Foo" // Replaced $text search with this and it works.
            },
            {
                "tags": { "$in": [searchText]}
            }
        ];

我是在做猫鼬不允许的事,还是猫鼬不允许的事

我也有同样的问题。我仍然找不到解决办法。