Ich sehe einige Fehler in Ihrem Code, die zu unerwünschten Ergebnissen führen.
-
Die Aggregationspipeline akzeptiert eine Reihe von Aggregationsframework-Vorgängen. In Ihrem Fall fehlt
[]
Operator. Es sollte so aussehenUser.aggregate([{$project...},{$match...}])
-
In der $match-Phase verwenden Sie Regex, wenn Sie
/../
verwenden Stil von Regex, müssen Sie es nicht um String-Anführungszeichen setzen. Es sollte/bob j/i
sein
Hier ist ein fertiges Beispiel:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Sie sollten [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
sehen auf dem Bildschirm.