选择MongooseJs中的特定字段

时间:2012-10-25 09:03:15

标签: javascript node.js mongodb mongoose

我有一个使用Mongoose ODM的NodeJS应用程序。 我想从集合中选择三个特定字段。 我的收藏示例是“用户”,其字段为“_id”,“用户名”,“电子邮件”,“用户类型”,“密码”...... 我只想选择“用户名”,“电子邮件”和“用户类型”。 这是我的代码

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

这与mongoose 2版本一起工作正常,我更新到Mongodb 2.2和Mongoose 3.3.1。 现在我收到错误

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

有人可以建议一个解决方案吗?

2 个答案:

答案 0 :(得分:16)

因为mongoose 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});

答案 1 :(得分:12)

从Mongoose版本4开始,您不需要select()。

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