9

MongooseODMを使用したNodeJSアプリケーションがあります。コレクションから3つの特定のフィールドを選択したいと思います。私のコレクションの例は、フィールド「_id」、「username」、「email」、「usertype」、「password」を持つ「Users」です...「username」、「email」、「usertype」のみを選択したい。これは私のコードでした

 var query = models.User.find({}).select('UserName', 'Email', 'UserType');

これはmongoose2バージョンで正常に機能していました。Mongodb2.2とMongoose3.3.1に更新しました。今私はエラーが発生しています

500 TypeError: Invalid select() argument. Must be a string or object.

誰かが解決策を提案できますか?

4

2 に答える 2

18

マングース3のselect()パラメーターは、次のいずれかになります。

  • 除外/含まれるフィールドの0-1マップを含むオブジェクト
  • フィールド名のスペース区切り文字列(-除外する必要のあるフィールドの前を含む)

したがって、次のいずれかを使用する必要があります。

var query = models.User.find({}).select('UserName Email UserType');

また

var query = models.User.find({}).select({UserName : 1, Email : 1, UserType: 1});
于 2012-10-25T09:09:33.507 に答える
14

Mongooseバージョン4では、select()は必要ありません。

var query = models.User.find({}, 'UserName Email UserType');
于 2015-04-18T14:18:14.083 に答える