根据输入Mongoose数组找到元素

时间:2016-07-19 15:02:03

标签: javascript node.js mongodb mongoose

模型是

  UserSchema = new Schema({
        email: String,    
        erp_user_id:String,    
        isActive: { type: Boolean, 'default': true },
        createdAt: { type: Date, 'default': Date.now }
    });
module.exports = mongoose.model('User', UserSchema);

现在我有一个字符串列表,[erp_user_id]的列表,我想搜索列表中包含erp_user_id的所有用户。

类似

var inputArray = ['1234','324324','54345'];

User.find({inputArray.contains(erp_user_id)}).exec(function(err,users){
user;//  <---- list of users expected result
})

2 个答案:

答案 0 :(得分:2)

使用$in运算符匹配数组中的值。

$in运算符选择字段值等于指定数组中任何值的文档。要指定$in表达式,请使用以下原型:

db.collection.find({field: {$in: array}});

您的代码:

var inputArray = ['1234', '324324', '54345'];

User
    .find({
        erp_user_id: {
            $in: inputArray
        }
    })
    .exec(function(err, users) {
        if (err) console.log(err);
        console.log(users);
    });

答案 1 :(得分:1)

var inputArray = ['1234','324324','54345'];

User.find({erp_user_id:{$in:inputArray}}).exec(function(err,users){
user;//  <---- list of users expected result
})