Tôi thấy một số lỗi trong mã của bạn gây ra kết quả không mong muốn.
-
Đường ống tổng hợp chấp nhận một loạt các hoạt động của khung tổng hợp. Trong trường hợp của bạn, bạn đang thiếu
[]
nhà điều hành. Nó sẽ giống nhưUser.aggregate([{$project...},{$match...}])
-
Trong giai đoạn $ so khớp, bạn đang sử dụng regex, nếu bạn đang sử dụng
/../
kiểu regex, bạn không cần phải quấn nó quanh dấu ngoặc kép. Nó phải là/bob j/i
Đây là ví dụ hoàn chỉnh:
User.aggregate([
{$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
{$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
console.log(result);
});
Bạn sẽ thấy [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ]
trên màn hình.