【发布时间】:2023-03-11 00:25:02
【问题描述】:
假设这是我的 MongoDB 架构:
var shopSchema = new mongoose.Schema({
nameShop: String,
products: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Product'
}]
});
var productSchema = new mongoose.Schema({
nameProduct: String,
fruits: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Fruit'
}
]
});
var fruitSchema = new mongoose.Schema({
nameFruit: String,
price: Number
});
module.exports = {
Shop: mongoose.model('Shop', shopSchema),
Product: mongoose.model('Product', productSchema),
Fruit: mongoose.model('Fruit', fruitSchema)
}
我知道我可以通过这种方式获取数据,但是该代码的结果是一个“丑陋”的数组
var Schema = require('../model/schema');
Schema.Shop.find({}).populate({
path: 'products',
model: 'Product',
populate: {
path: 'fruits',
model: 'Fruit'
}
}).exec(callback);
是否有可能从这个模式中获取数据,以使我拥有漂亮的数组?例如:
var MyArray = [
{ nameShop: "Tesco", nameProduct: "New", nameFruit: "Apple", price: 10 },
{ nameShop: "Tesco", nameProduct: "New", nameFruit: "Pinapple", price: 4 },
{ nameShop: "Eko", nameProduct: "Old", nameFruit: "Kiwi", price: 8 },
{ nameShop: "Makro", nameProduct: "Fresh", nameFruit: "Pear", price: 7 },
{ nameShop: "Carefour", nameProduct: "New", nameFruit: "Orange", price: 6 }
];
【问题讨论】:
标签: javascript node.js mongodb mongoose aggregation-framework