Je vois quelques erreurs dans votre code provoquant un résultat indésirable.
-
Le pipeline d'agrégation accepte un tableau d'opérations de structure d'agrégation. Dans votre cas, il vous manque
[]
opérateur. Ça devrait être commeUser.aggregate([{$project...},{$match...}])
-
Dans l'étape $match, vous utilisez regex, si vous utilisez
/../
style de regex, vous n'avez pas besoin de l'entourer de guillemets de chaîne. Ce devrait être/bob j/i
Voici un exemple fini :
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Vous devriez voir [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
à l'écran.