在MongooseJs中select特定的字段
我有一个使用Mongoose ODM的NodeJS应用程序。 我想从集合中select三个特定的字段。 示例我的collections是“用户”字段'_id','用户名','电子邮件','usertype','密码'…我只想select'用户名','电子邮件'和'usertype'。 这是我的代码
var query = models.User.find({}).select('UserName', 'Email', 'UserType');
这与mongoose2版本正常工作,我更新到Mongodb 2.2和Mongoose 3.3.1。 现在我得到错误
500 TypeError: Invalid select() argument. Must be a string or object.
任何人都可以请build议解决scheme?
由于mongoose3 select()参数可以是:
- 包含排除/包含字段的0-1映射的对象
- 一个以空格分隔的字段名string(带
-
在需要排除的字段之前)
所以你应该使用:
var query = models.User.find({}).select('UserName Email UserType');
要么
var query = models.User.find({}).select({UserName : 1, Email : 1, UserType: 1});
从Mongoose版本4开始,你不需要select()。
var query = models.User.find({}, 'UserName Email UserType');