estou tentando usar a função populate no postman mas n funciona
model de produto:
const mongoose = require('mongoose');
const { Schema } = require('mongoose');
const produtoSchema = new Schema({
id: {
type: String
},
nome: {
type: String,
require: true
},
fornecedor:[{
type: mongoose.Schema.Types.ObjectId,
ref: 'Fornecedores'
}],
preco: {
type: Number,
require: true
},
quantidade: {
type: Number,
require: true
}
});
const Produtos = mongoose.model('Produtos', produtoSchema);
module.exports = Produtos;
Model de Fornecedor:
const mongoose = require('mongoose');
const { Schema } = require('mongoose');
const fornecedorSchema = new Schema({
id: {
type: String
},
nome: {
type: String,
require: true
},
contatoInfo: {
type: String,
require: true,
}
});
const Fornecedores = mongoose.model('Fornecedores', fornecedorSchema);
module.exports = Fornecedores;
meu appj.js
require('dotenv').config();
const express = require('express');
const mongoose = require('mongoose');
const Fornecedores = require('./models/Fornecedor');
const Produtos = require('./models/Produto');
const app = express();
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).then(() => {
console.log('Connect to database');
}).catch((error) => {
console.log('MongoDB connection error:', error);
});
app.use(express.json());
app.post('/fornecedor', async (req, res) => {
const { nome, contatoInfo } = req.body;
try {
const fornecedor = await Fornecedores.create({nome, contatoInfo});
return res.status(201).json(fornecedor);
} catch (error) {
return res.status(500).json({ message: error.message });
}
});
app.post('/produto', async (req, res) => {
const { nome, fornecedor, preco, quantidade} = req.body;
try {
const produto = await Produtos.create({ nome, fornecedor, preco, quantidade});
return res.status(201).json(produto);
} catch (error) {
return res.status(500).json({message: error.message});
}
});
app.get('/produto', async (req, res) => {
try {
const data = await Produtos.findOne({name: 'notebook'}).populate({
path: 'fornecedore'
});
return res.status(200).json(data);
} catch (error) {
return res.status(500).json({message: error.message})
}
});
app.listen(process.env.PORT, () => {
console.log(`servidor rodando na porta ${process.env.PORT}`);
});
Ja tentei de todas as formas que encontrei na internet, mas nada funciona