Ошибка отображения названия категории через связь с mongoose

#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’});