Mongoose / MongoDB查找输入数组中的元素是否在模式属性关键字数组中

时间:2013-08-18 04:17:49

标签: node.js mongodb mongoose

我需要帮助,试图找出创建查询来搜索关键字数组的最佳方法。

我希望能够使用数组["work", "hi"]进行搜索,比较模式中的数组

["work", "school"]并且应该返回此文档。现在我正在使用

this.resumes.find({
    keywords: {
        $all: term.split(' ')
    }
}).limit(50)
.select('-keywords').exec(function (err, resumes) {});

但这仅在搜索数组中的两个都在架构数组中时才有效。那么如何进行部分匹配?

2 个答案:

答案 0 :(得分:0)

this.resumes.find({$or: [{keywords: term1}, {keywords: term2}]})

答案 1 :(得分:0)

我认为使用$in运算符会使这更容易:

this.resumes.find({ keywords: { $in: [ "work", "hi" ] } })

基本上,单个数组字段上的$or。来自文档:

  

$ in选择字段值等于的任何值的文档   指定的数组