Kim*_*sik 6 mongoose mongodb node.js
我的模型代码:
var user = mongoose.Schema({
email: ....
password: .....
name : ...
company : ...
position : ....
phoneNumber : ...
signDate : Date,
friends: [{ type : mongoose.Schema.Types.ObjectId ,unique: true, ref: 'user' }],
accessToken: .....
});
Run Code Online (Sandbox Code Playgroud)
和:
var friend = mongoose.Schema({
friends: [{ type : mongoose.Schema.Types.ObjectId ,unique: true, ref: 'user' }]
});
Run Code Online (Sandbox Code Playgroud)
使用这两个,我想使用一个关键字搜索所有字段。
var fds = new Friend;
User.findOne({email : user.email})
.populate({
path : 'friends',
match : ''''empty''''
})
.exec(function (err, fd) {
if(!err){
fds = fd.friends;
res.render('account/friend', { layout: false, user: user, friends: fds });
}else{ console.log(err)}
});
Run Code Online (Sandbox Code Playgroud)
我不知道在那个空白处放什么。
var term = new RegExp(req.body.inputAll, 'i');
User.find().or([{ email: { $regex: term }},
{ name: { $regex: term }},
{ company: { $regex: term }},
{ position: { $regex: term }},
{ phoneNumber: { $regex: term }}])
Run Code Online (Sandbox Code Playgroud)
在其他地方,这是单词OR搜索。但是除了使用“匹配”之外,我不知道如何填充或搜索?
您可以使用$or
运算符对进行“或”查询match
。像这样的东西:
User.findOne({email : user.email})
.populate({
path : 'friends',
match : {
$or: [
{ email: { $regex: term }},
{ name: { $regex: term }},
{ company: { $regex: term }},
{ position: { $regex: term }},
{ phoneNumber: { $regex: term }}
]
}
})
.exec(function (err, fd) {
if(!err){
fds = fd.friends;
res.render('account/friend', { layout: false, user: user, friends: fds });
}
else{
console.log(err)
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1241 次 |
最近记录: |