#node.js #mongodb #express
#node.js #mongodb #выразить
Вопрос:
У меня есть модель под названием «Produto», как показано в приведенном ниже коде.
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ProdutoSchema = new Schema({
titulo: { type: String, required: true },
preco: { type: Number, required: true },
resumo: { type: String, required: true },
categoria: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Categoria',
required: true
},
descricao: { type: String, required: true }
});
const Produto = mongoose.model("Produtos", ProdutoSchema);
module.exports = Produto;
Эта модель относится к модели «Categoria»
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const CategoriaSchema = new Schema({
titulo: { type: String, required: true }
});
const Categoria = mongoose.model("Categorias", CategoriaSchema);
module.exports = Categoria;
Когда я показываю название категории в списке, оно не отображается. В базе данных связь сохраняется как ObjectId
router.get('/produtos', async function(req, res, next) {
try {
_produtos = await Produto.find({}).populate('categorias');
res.render('admin/produtos/index', {
produtos: _produtos
});
} catch (error) {
res.send(error)
}
});
В представлении
produto.categoria.titulo
Комментарии:
1. Можете ли вы описать конечный результат, к которому стремитесь?
2. Я думаю, у вас опечатка. попробуйте это _produtos = await Produto.find({}).populate({path: ‘categoria’});
3. Не сработало использование _produtos = await Produto.find({}).populate({путь: ‘categoria’});