gpt4 book ai didi

node.js - 我想找到填充或搜索, Mongoose

转载 作者:可可西里 更新时间:2023-11-01 09:11:17 26 4
gpt4 key购买 nike

我的模型代码:

var user = mongoose.Schema({
email: ....
password: .....
name : ...
company : ...
position : ....
phoneNumber : ...
signDate : Date,
friends: [{ type : mongoose.Schema.Types.ObjectId ,unique: true, ref: 'user' }],
accessToken: .....
});

和:

var friend = mongoose.Schema({
friends: [{ type : mongoose.Schema.Types.ObjectId ,unique: true, ref: 'user' }]
});

使用这两个,我想使用单个关键字搜索所有字段。

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)}
});

我不知道在那个空白处放什么。

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 }}])

在其他地方,这是 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)
}
});

关于node.js - 我想找到填充或搜索, Mongoose ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com