Widzę kilka błędów w twoim kodzie powodujących niepożądany wynik.
-
Potok agregacji akceptuje szereg operacji struktury agregacji. W Twoim przypadku brakuje Ci
[]
operator. Powinno być jakUser.aggregate([{$project...},{$match...}])
-
Na etapie $match używasz wyrażenia regularnego, jeśli używasz
/../
stylu wyrażenia regularnego, nie musisz owijać go wokół cudzysłowów. Powinien to być/bob j/i
Oto gotowy przykład:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Powinieneś zobaczyć [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
na ekranie.