我需要帮助,试图找出创建查询来搜索关键字数组的最佳方法。
我希望能够使用数组["work", "hi"]
进行搜索,比较模式中的数组
["work", "school"]
并且应该返回此文档。现在我正在使用
this.resumes.find({
keywords: {
$all: term.split(' ')
}
}).limit(50)
.select('-keywords').exec(function (err, resumes) {});
但这仅在搜索数组中的两个都在架构数组中时才有效。那么如何进行部分匹配?
答案 0 :(得分:0)
this.resumes.find({$or: [{keywords: term1}, {keywords: term2}]})
答案 1 :(得分:0)
我认为使用$in
运算符会使这更容易:
this.resumes.find({ keywords: { $in: [ "work", "hi" ] } })
基本上,单个数组字段上的$or
。来自文档:
$ in选择字段值等于的任何值的文档 指定的数组