【问题标题】:Mongoose: return only valuesMongoose:只返回值
【发布时间】:2015-05-14 23:42:03
【问题描述】:

我正在使用 Mongoose 查询我的用户架构,其中包含:

var usersSchema = new Schema( 
    {
        email : String,
        regId : { type : String , default : '' },
        lastName : { type : String , default : '' },
        ...
    });

我需要为我拥有的电子邮件数组获取getId 属性值。目前我正在尝试做:

db.model('users').find( { email : { $in : arrUsers } }, { regId : true, _id : false }, function (err, res) { ... }

我收到这个数组:[{ regId : "..." }, { regId : "..." }]

我想收到什么:{ "...", "..." }

有没有简单的方法来做到这一点?非常感谢!!!

编辑:我有兴趣在数据库端执行 for 循环...

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    您可以使用额外的underscores地图功能:

    var regIds = _.map(res, function (element) {
      return element.regId;
    });
    
    //regIds = ['..', '..'] as you've expected
    

    【讨论】:

    • 或者只使用node.js中提供的内置数组map函数。
    • @Anton Savchenko,有没有办法在数据库端做到这一点?
    • 也许你可以像link 那样使用本机 mongo 映射函数(来自本机驱动程序),或者也从本机驱动程序处理聚合。我对 Mongoose 中的此类功能有点不确定,因为集合中的每个对象都是搜索结果的表示,然后您应该像处理集合一样处理它,而不是处理简单数组。
    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2016-10-08
    • 2021-01-02
    • 1970-01-01
    • 2018-08-07
    相关资源
    最近更新 更多