Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não consigo associar dados entre Schemas

Ao fazer o teste get /livros no Postman, o campo "autor" não aparece no resultado:

/models/Livro.js import mongoose from "mongoose";

const livroSchema = new mongoose.Schema( { id: { type: String }, titulo: { type: String, required: true }, autor: { type: mongoose.Schema.Types.ObjectId, ref: "autores", required: true }, editora: { type: String, required: true }, numeroPaginas: { type: Number }, }, );

const livros = mongoose.model("livros", livroSchema);

export default livros;

/models/Autor.js import mongoose from "mongoose";

const autorSchema = new mongoose.Schema( { id: { type: String}, nome: { type: String, require: [true, "Nome do autor(a) é obrigatório"]}, nacionalidade: {type: String} }, { versionKey: false } );

const autores = mongoose.model("autores", autorSchema);

export default autores;

/controllers/livrosControllers.js import livros from "../models/Livro.js";

class LivroController {

static listarLivros = async (req, res, next) => { try { const listaDeLivros = await livros.find({}).populate("autor").exec(); res.status(200).send(listaDeLivros); } catch (err) { next(err); } }; }

export default LivroController;

1 resposta
solução!

Consegui resolver. Na verdade faltava atualizar, na mão, o campo autor com os ids dos autores cadastrados. Após isso foi possível ver o resultado com o campo associado corretamente.