2016-10-08 1 views
0

mongoを照会しようとしています。照会はユーザー名や国などの特定のフィールドに基づいて行われます。私は取得リクエストで必要なデータを取得できますが、特定のフィールドでクエリを実行しようとするたびにデータは破損します。このエラーが返されます。照合文字列に一致または正規表現を使用して照会文字列をベースにして

私のクエリ文字列:localhostを:4002 /ユーザーのfirstName =マーク

ERR:?MongoError:クエリを正規化することはできません。BadValueをサポートされていない投影オプション:firstNameという:{$試合: "マーク"}

app.get('/users', (req,res) => { 
    co(function*(){ 
     var dbSocial = yield MongoClient.connect(dbSocialUrl); 

     let query = { 

      firstName:1, 
      lastName:1, 
      createDT:1, 
      "_mailAddress.country":1, 
      ownerId:1, 
      userName:1 
     } 
     // 
     if (req.query.firstName) { 
     query["firstName"] = { 
      $match: req.query.firstName || '', 
     } 
     } 

     console.log('query',query); 

     //get users 
     var users = yield dbSocial 
     .collection('user') 
     .find({},(query)) 
     .limit(100) 
     .toArray(); 
    }) 

答えて

0

問題が私のクエリオブジェクトにありました。

let query ={} 

作品

0

$の試合は、クエリ条件を指定する文書を取る集約パイプライン演算子あります。クエリとしてオブジェクトを取ります。

{$試合:{<>}}

あなたはあなたのケースでは、あなたが一致するフィールドを、置く必要があり、名前。 そうのような、

db.collection_name.aggregateクエリを構築({$試合:{ '名前': 'マーク'}})

関連する問題