2017-08-23 12 views
3

これは非常に奇妙な問題で、修正できませんでした。クエリとコードの私の作品は、このいずれかになります。

userTypeModel.find({$or: [{name: 'ADMIN'}, {name: 'SUPERADMIN'}], activeStatus: 1}, function (err, userTypeRow) { 

    if (err) { 
     flowController.emit('ERROR', {message: "Unable to Get details! Try again " + err, status: 'error', statusCode: '500'}); 
    } else if (userTypeRow.length == 0) { 
     flowController.emit('ERROR', {message: "No user-types available in the system yet!", status: 'error', statusCode: '404'}); 
    } else { 
     var adminId = null; 
     var superAdminId = null; 

     async.eachSeries(userTypeRow, function (element, callback) { 

      if (element.name == 'ADMIN') { 

       adminId = String(element._id); 
      } 

      if (element.name == 'SUPERADMIN') { 

       superAdminId = String(element._id); 
      } 

      callback(); 
     }, function (err) { 

      if (err) { 
       flowController.emit('ERROR', err); 
      } else { 
       flowController.emit('1', adminId, superAdminId); 
      } 
     }); 
    } 
}); 

私は、私はそれが働いたMongoClient RoboMongo &にクエリの上に走った

{ 
"message": "ERROR WHILE GETTING USERS Error: Can't use $or with String.", 
"status": "error", 
"statusCode": "500" 
} 

として応答を得たこのクエリを呼び出したときに! クエリの問題はプログラムによってどこにありますか?

+0

あなたが解決しましたこのエラー? – Kannan

答えて

0

それが動作しない理由を正確に私は(多分mongoose見て)知らない誰かがこの要求作業を取得したい場合は、ここで私の作品解決策は次のとおりです。

userTypeModel.find({ 
    name : { 
    $in : [ 
     'ADMIN', 
     'SUPERADMIN' 
    ] 
    }, 
    activeStatus : 1 }, function (err, userTypeRow) {...}) 
関連する問題