假设我有包含三个字段的 User
架构,一个 username
、email
和 password
,我将如何使用 mongoose 进行查询,在其中搜索 {仅 {1}} 和 username
字段并返回匹配的文档。
例如在 expressjs 中,URL 将是:
email
发布到那个 ur 应该返回一个文档数组,这些文档在其电子邮件、用户名或两者中都有 http://localhost:8000/users/search?q=testuser
。
答案 0 :(得分:1)
就像将值传递给带有 $or
条件的 find()
方法一样简单。
检查 this 示例:
db.collection.find({
"$or": [
{
"username": {
"$regex": "testuser"
}
},
{
"email": {
"$regex": "testuser"
}
}
]
})
返回 username
或 email
包含 testuser
的值。
通过 mongoose
,您可以使用同义词:
yourModel.find({
"$or": [
{ "username": { "$regex":"testuser" } },
{"email": { "$regex":"testuser" } }
]
}).then(result => {
console.log(result);
}).catch(e => {
console.log(e);
})