MongoDB - 按姓名或姓氏或姓名+姓氏查找用户
MongoDB - Find users by Name or Surname or Name+Surname
我正在尝试在 MongoDB 中复制此 SQL 查询:
SELECT * FROM users WHERE
name LIKE CONCAT('%', :search_txt, '%') OR
surname LIKE CONCAT('%', :search_txt, '%') OR
CONCAT(name, ' ', surname) LIKE CONCAT('%', :search_txt, '%')
到目前为止,我设法使用此代码按姓名或姓氏进行搜索,但我不知道如何同时按姓名+姓氏进行搜索
User.find(
{
"$or": [
{"name" : new RegExp(req.body.term, 'i')},
{"surname" : new RegExp(req.body.term, 'i')}
]
}
谢谢
给你:
User.aggregate({
$addFields: {
"fullname": {
$concat: [ "$name", ' ', "$surname" ]
}
}
}, {
$match: {
"$or": [
{"name": new RegExp(req.body.term, 'i')},
{"surname": new RegExp(req.body.term, 'i')},
{"fullname": new RegExp(req.body.term, 'i')}
]
}
我正在尝试在 MongoDB 中复制此 SQL 查询:
SELECT * FROM users WHERE
name LIKE CONCAT('%', :search_txt, '%') OR
surname LIKE CONCAT('%', :search_txt, '%') OR
CONCAT(name, ' ', surname) LIKE CONCAT('%', :search_txt, '%')
到目前为止,我设法使用此代码按姓名或姓氏进行搜索,但我不知道如何同时按姓名+姓氏进行搜索
User.find(
{
"$or": [
{"name" : new RegExp(req.body.term, 'i')},
{"surname" : new RegExp(req.body.term, 'i')}
]
}
谢谢
给你:
User.aggregate({
$addFields: {
"fullname": {
$concat: [ "$name", ' ', "$surname" ]
}
}
}, {
$match: {
"$or": [
{"name": new RegExp(req.body.term, 'i')},
{"surname": new RegExp(req.body.term, 'i')},
{"fullname": new RegExp(req.body.term, 'i')}
]
}