【问题标题】:How to populate values in array format in mongoose如何在猫鼬中以数组格式填充值
【发布时间】:2016-02-18 14:01:21
【问题描述】:

我有一个模型结构如下,其中阶段是从另一个模型中检索的

var stageSchema = new Schema({
  Name: String,
  Stage: {
    type: Schema.ObjectId,
    ref: 'StageName',
  }
}, {
  collection: 'StageList'
});

我已经编写了查询来使用 mongoose 检索数据,如下所示:

exports.findall = function(req, res) {
    stage.find().populate({path:'Stage',select:'-_id'}).lean().exec(function(err, value1) {
        res.send(value1);
  });
};

结果如下图所示

[{_id:213465465465465, Name: "AAA", Stage: {Value: "Stage1"}},{_id:213465465465465, Name: "BBB", Stage: {Value: "Stage2"}}]

但我希望舞台是数组格式,没有键“Value”,如下所示:

[{_id:213465465465465, Name: "AAA", Stage: ["Stage1"]},{_id:213465465465465, Name: "BBB", Stage: ["Stage2"]}]

请帮助解决这个问题。提前致谢。

【问题讨论】:

    标签: node.js mongodb mongoose mean


    【解决方案1】:

    要将 Stage 的结果文档修改为不带“Value”键的数组格式,请使用 JavaScript 的 map() 方法创建一个新数组,在其中将数组中的对象修改为如下:

    exports.findall = function(req, res) {
        stage.find().populate({path: 'Stage', select: '-_id'}).lean().exec(function(err, results) {
            var value1 = results.map(function (r){
                var stageVal = r.Stage.Value;
                r.Stage = [stageVal];
                return r;
            });
            res.send(value1);
        });
    };
    

    【讨论】:

    • @user3211705 不用担心,很乐意提供帮助:)
    猜你喜欢
    • 2016-06-11
    • 2020-01-30
    • 2014-04-19
    • 1970-01-01
    • 2015-07-13
    • 2017-02-25
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多