Veo un par de errores en su código que causan un resultado no deseado.
-
La canalización de agregación acepta una matriz de operaciones de marco de agregación. En tu caso, te falta
[]
operador. Debería ser comoUser.aggregate([{$project...},{$match...}])
-
En la etapa $match está usando expresiones regulares, si está usando
/../
estilo de expresión regular, no necesita envolverlo entre comillas de cadena. Debería ser/bob j/i
Aquí está el ejemplo terminado:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Deberías ver [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
en pantalla.