У меня есть реляционный json, называемый "клиент" внутри модели Билла. Это мой код:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const billSchema = new Schema({
number: Number,
date: {type: Date, default: Date.now()},
type: String,
local: String,
client: {type: mongoose.Schema.Types.ObjectId,ref:'clients',required: true},
detail: [{
quantity: Number,
product: {code: Number,
name: String,
price: Number
},
undertotal: Number
}
],
total: Number
});
mongoose.model('bills', billSchema);
Это мой почтовый маршрут
app.post('/api/bills', async (req, res) => {
const { number, type, local, client, detail, total} = req.body;
await Client.findById(req.body.client._id)
.then(client => {
if (!client) {
return res.status(404).json({
message: "client not found"
});
}});
const bill = new Bill({
number,
date: new Date(),
type,
local,
client,
detail,
total
})
try {
let newBill = await bill.save();
res.status(201).send(newBill);
} catch (err) {
if (err.name === 'MongoError') {
res.status(409).send(err.message);
}
res.status(500).send(err);
}
});
my get route
app.get('/api/bills',function(req,res){
Bill.find({}, function(err, bills) {
Client.populate(bills, {path: "clients"},function(err, bills){
res.status(200).send(bills);
});
});
});
Я хочу что-то вроде этого:
{"number": 302,
"type": "c",
"local": "porstmouth",
"client": {
"address": {
"street": "victoria street",
"number": 1001,
"floor": "2",
"flat": 4
},
"_id": "5dab929613fb682b48e4ca6b",
"name": "luke skywalker",
"mail": "l.skywalker@yahoo.com",
"cuil": "39193219",
"phone": 128391,
"__v": 0
},
"detail": [{
"quantity": 500,
"product": {"code": 300,
"name": "P2",
"price": 800
},
"undertotal": 5000
}
],
"total": 11000
}
Но я вижу такой результат:
{
"date": "2019-10-20T12:27:17.162Z",
"_id": "5dac52a577e09b4acc45718d",
"number": 302,
"type": "c",
"local": "porstmouth ",
"client": "5dab929613fb682b48e4ca6b",
"detail": [
{
"_id": "5dac52a577e09b4acc45718e",
"quantity": 500,
"product": {
"code": 300,
"name": "P2",
"price": 800
},
"undertotal": 5000
}
],
"total": 11000,
"__v": 0
}
Я не хочу видеть только ID клиента. Я хочу видеть весь контент от клиента внутри счета. Я пытался сделать с методом заполнения, но у меня нет результатов.
Итак, что такое форма для публикации и заполнения вложенного реляционного объекта json в этом случае?