例如,我有一个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中的查询执行此操作(此类搜索的构造方式如何)感谢您的关注。
答案 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 */
});