【问题标题】:Selecting particular fields in MongooseJs在 MongooseJs 中选择特定字段
【发布时间】:2026-01-12 16:45:01
【问题描述】:

我有一个带有 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.

谁能提出解决方案?

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案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');
      

      【讨论】:

        最近更新 更多