我有一套Collection ,
[
{
firstName: "John",
middleName: "F",
lastName: "Kennedy"
},
{
firstName: "Barack",
lastName: "Obama"
}
]
我正在try 创建一个按名称搜索集合的函数.我需要先把名字连在一起,然后才能找到匹配的.我try 了以下几种方法
User.aggregate([
{
"$project": {
fullName: {
"$concat": [
"$firstName",
" ",
"$lastName"
]
}
}
},
{
$match: {
"fullName": {
$regex: /[a-z\\s]*oba[a-z\\s]*/i
}
}
}
])
它适用于没有中间名的名字.但我也需要这个对中间名的名字起作用.当我try 连接middleName
时,我得到一个错误,因为路径middleName
并不是在所有文档上都存在.我无法实现$cond
和$exists
运算符的正确工作.任何形式的帮助都是非常感谢的.谢谢!