2012-10-25 62 views
7

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

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

这是工作的罚款与猫鼬2版本,我更新到MongoDB的2.2和3.3.1猫鼬。 现在我得到错误

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

任何人都可以请提出一个解决办法?

回答

13

由于猫鼬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}); 
+0

谢谢!这两个代码运作良好。 – dany

10

由于猫鼬版本4,你不需要选择()。

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