コードにいくつかの間違いがあり、望ましくない結果が生じているようです。
-
集約パイプラインは、集約フレームワーク操作の配列を受け入れます。あなたの場合、
のようになります[]
がありません オペレーター。User.aggregate([{$project...},{$match...}])
-
$ matchステージでは、
/../
を使用している場合、正規表現を使用しています。 正規表現のスタイルでは、文字列の引用符で囲む必要はありません。/bob j/i
である必要があります
完成した例は次のとおりです:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
[ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
が表示されます。 画面上。