我有一个使用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.
有人可以建议一个解决方案吗?
答案 0 :(得分:16)
因为mongoose 3 select()参数可以是:
-
)所以你应该使用:
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');