• 1000 родительский к дочерним документам.
Схема документа «Мое здание» включает идентификаторы пользователя и комнаты, как показано ниже:
const mongoose = require('mongoose');
const BuildingSchema = new mongoose.Schema({
user: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "user"
}
],
room: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "room"
}
],
Схема документа «Моя комната» включает идентификатор здания и другой дочерний документ следующим образом:
const mongoose = require('mongoose');
const RoomSchema = new mongoose.Schema({
building: {
type: mongoose.Schema.Types.ObjectId,
ref: "building"
},
furniture: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "furniture"
}
],
У меня возникли проблемы с пониманием того, как создать почтовый запрос, который позволяет пользователю / пользователям создавать экземпляр Building и несколько экземпляров Room, связанных с ним после ...
My express код пока может создать новый экземпляр здания, но я не уверен, как с ним обращаться, включая идентификатор комнаты:
router.post('/createbuilding', [auth, [
check('name', 'Building Name is required').not().isEmpty(),
]
], async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
const {
name,
type,
website,
location,
bio,
} = req.body;
const buildingFields = {
user: req.user.id,
//room: req.room.id,
name,
type,
website: website && website !== '' ? normalize(website, { forceHttps: true }) : '',
location,
bio
};
try {
let building = await Building.findOneAndUpdate(
{ user: req.user.id },
//{ room: req.room.id },
{ $set: buildingFields },
{ new: true, upsert: true }
);
res.json(building);
} catch (err) {
console.error(err.message);
res.status(500).send('Server Error');
}
}
);
Примечание. Ссылки на идентификатор комнаты специально закомментированы, потому что это то, в чем я не уверен как включить в Почтовый запрос.