Saya melihat beberapa kesalahan dalam kode Anda yang menyebabkan hasil yang tidak diinginkan.
-
Pipa agregasi menerima serangkaian operasi kerangka kerja agregasi. Dalam kasus Anda, Anda kehilangan
[]
operator. Seharusnya sepertiUser.aggregate([{$project...},{$match...}])
-
Pada tahap $match Anda menggunakan regex, jika Anda menggunakan
/../
gaya regex, Anda tidak perlu membungkusnya dengan tanda kutip string. Seharusnya/bob j/i
Ini contoh yang sudah jadi:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Anda akan melihat [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
di layar.