在 MongooseJs 中选择特定字段

Posted

技术标签:

【中文标题】在 MongooseJs 中选择特定字段【英文标题】:Selecting particular fields in MongooseJs 【发布时间】:2012-10-15 10:22:05 【问题描述】:

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

 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.

谁能提出解决方案?

【问题讨论】:

【参考方案1】:

由于 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);

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于在 MongooseJs 中选择特定字段的主要内容,如果未能解决你的问题,请参考以下文章

填充多个参考(子文档)并选择特定字段

mongoosejs find() ????????

如何使用 MongoRepository 接口更新 mongo db 中的特定字段?

Mongo查询list数组中一个字段大于特定条数

MongooseJS 无法禁用字段独有

Spring Mongo 条件查询两次相同的字段