2016-05-18 6 views
0

複数のパラメータでモデルをフィルタリングしようとしています。フィルターでフィルタリングした結果Mongoose

まず、私は、クエリのparamを含む最初の名前でこれらのオブジェクトを見つける:

if (lastName){ 
    filteredUsers.find({firstName: new RegExp(lastName, "i")}, function (err, users) { 
     filteredUsers = users; 
    }) 
} 

となど

:次に

if (firstName){ 
    User.find({firstName: new RegExp(firstName, "i")}, function (err, users) { 
     filteredUsers = users; 
    }); 
} 

、私は次のようにfilteredUsersをフィルタリングし続けたいですしかし、私は自然にこのエラーが発生しています:

#<Object> is not a function 

フィルタリングされた結果をフィルタリングする方法を教えてください。

+0

あなたはそれがシーンを作成しません持っている方法です。単純な配列でデータベースを照会することはできません。私は思うあなたの戦略を計画し直さなければなりません。 –

答えて

2

aggregationはあなたが探しているものです。 あなたのコードは、(私はマングースを試していない)のようになります。

Users.aggregate(
    [ 
    { $match: firstname ? { firstname: new RegExp(firstname, "i") } : {} }, 
    { $match: lastname ? { lastname: new RegExp(lastname, "i") } : {} } 
    ] 
); 
関連する問題