如何在猫鼬中以数组格式填充值
How to populate values in array format in mongoose
我有一个如下所示的模型结构,其中的阶段是从另一个模型中检索的
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"]}]
请帮忙解决这个问题。提前致谢。
要将 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);
});
};
我有一个如下所示的模型结构,其中的阶段是从另一个模型中检索的
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"]}]
请帮忙解决这个问题。提前致谢。
要将 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);
});
};