Jag ser ett par fel i din kod som orsakar oönskade resultat.
-
Aggregationspipeline accepterar en rad aggregeringsramverksoperationer. I ditt fall saknar du
[]
operatör. Det borde vara somUser.aggregate([{$project...},{$match...}])
-
I $match-stadiet använder du regex, om du använder
/../
stil av regex, du behöver inte linda den runt citattecken. Det ska vara/bob j/i
Här är ett färdigt exempel:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Du bör se [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
på skärmen.