通过几个标准在mongoDb中搜索(使用mongooseJS)

时间:2017-11-16 20:28:18

标签: mongodb search mongoose schema

例如,我有一个Schema

let UserSchema = new Schema({

username: { type: String, required: true, unique: true },
name: { type: String, required: true },
surname: { type: String, required: true },
....
....

是否可以同时按名称,用户名和姓氏搜索用户?我的意思是,如果我们输入" Paul" - 我们获得了一系列用户,包括用户名为" Paul",name" Paul"和姓氏<其中可能包含" Paul"。

如何使用Mongoose中的查询执行此操作(此类搜索的构造方式如何)感谢您的关注。

1 个答案:

答案 0 :(得分:0)

围绕Mongoose查询的基本语法很好documented

而且,是的,您可以在搜索条件中使用任意数量的字段。有很多logical operators可用于组合您的过滤器。对于不区分大小写的"包含"查询您需要使用$regex,如此:

var userName = "Paul";
var User = mongoose.model('User', UserSchema);
User.find({
    $or:
    [
        { "username": { $regex: userName, $options: 'i' } },
        { "name": { $regex: userName, $options: 'i' } },
        { "surname": { $regex: userName, $options: 'i' } }
    ]
},
function (err, docs) {
    /* do something with your results */
});