如何使用Node.js中的Mongoose将嵌套数组从后端传递到前端?
这是我的MongoDB模式:如何使用Node.js中的Mongoose将嵌套数组从后端传递到前端?,node.js,mongodb,mongoose,mongoose-populate,Node.js,Mongodb,Mongoose,Mongoose Populate,这是我的MongoDB模式: var partnerSchema = new mongoose.Schema({ name: String, products: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Product' }] }); var productSchema = new mongoose.Schema({ name: Stri
var partnerSchema = new mongoose.Schema({
name: String,
products: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Product'
}]
});
var productSchema = new mongoose.Schema({
name: String,
campaign: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Campaign'
}
]
});
var campaignSchema = new mongoose.Schema({
name: String,
});
module.exports = {
Partner: mongoose.model('Partner', partnerSchema),
Product: mongoose.model('Product', productSchema),
Campaign: mongoose.model('Campaign', campaignSchema)
}
我想将所有文档(合作伙伴
产品
活动
)作为一个对象发送到我的视图
我知道如何使用产品发送合作伙伴
。例如:
var campSchema = require('../model/camp-schema');
router.get('/partner-list', function (req, res) {
campSchema.Partner.find({}, function (err, partnerList) {
if (err) throw err;
res.json({ partnerList: partnerList });
}).populate('products');
});
我可以通过以下方式轻松地在视图中进行迭代:
li(ng-repeat="product in partner.products")
a(href="#") {{ product.name }}
这就是问题所在。如何将一个对象作为文档传递给合作伙伴
、产品
和活动
。因为目前该对象中只有合作伙伴
和产品
。您可以使用此模式填充嵌套的活动模型:
var campSchema = require('../model/camp-schema');
router.get('/partner-list', function (req, res) {
campSchema.Partner
.find({})
.populate({
path: 'products',
model: 'Product',
populate: {
path: 'campaign',
model: 'Campaign'
}
}).exec(function(err, partnerList) {
if (err) throw err;
res.json({ partnerList: partnerList });
});
});
您可以使用此模式填充嵌套的活动模型:
var campSchema = require('../model/camp-schema');
router.get('/partner-list', function (req, res) {
campSchema.Partner
.find({})
.populate({
path: 'products',
model: 'Product',
populate: {
path: 'campaign',
model: 'Campaign'
}
}).exec(function(err, partnerList) {
if (err) throw err;
res.json({ partnerList: partnerList });
});
});
试试这个:.populate('products','products.campaign')
(可能不起作用,但我认为值得一试。试试这个:.populate('products','products.campaign')
(可能不起作用,但我认为值得一试。我不知道为什么,但.exec
不能正常工作。错误:预期“;”
我错过了什么吗?@DiPix抱歉,我遗漏了回调函数。现在应该可以了。谢谢。现在我想知道如何删除对象。如果可以,请查看以下帖子:我不知道为什么,但.exec
无法正常工作。错误:应为“;”
我错过了什么吗?@DiPix抱歉,我遗漏了回调函数。它现在应该可以工作了。谢谢。现在我想知道如何删除对象。如果可以,请查看此帖子: