Я пытаюсь установить связь One-To-Many
между двумя таблицами (таблицами групп и перемещений), используя node js (Express) и mon go DB. У меня уже есть group Id
, исходящий из таблицы групп на моей стороне, мой вопрос, как я могу сохранить движение ( см. Пункт 3 ) с тем, что у меня есть group Id
. Я попытался передать groupId: req.body.group._id
и groupId: req.body.group
, но мне не удалось заполнить эту переменную
Это две сущности, которые я создал:
1) GROUP ENTITY
const mongoose = require("mongoose")
const GroupSchema = mongoose.Schema({
name: {
type: String,
required: true
},
limit: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
movement: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Movement' }],
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
})
module.exports = mongoose.model("Group", GroupSchema)
2) СУЩНОСТЬ ДВИЖЕНИЯ
const mongoose = require("mongoose")
const MovementSchema = mongoose.Schema({
description: {
type: String,
required: true
},
value: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
group: { type: mongoose.Schema.Types.ObjectId, ref: 'Group' }
})
module.exports = mongoose.model("Movement", MovementSchema)
Это мой маршрутизатор движения, на котором я делаю конечные точки ( Фактическая проблема здесь )
3) MovementRoute
const router = require('express').Router();
const verify = require('./verifyToken');
const User = require('../model/User');
const Group = require('../model/Group');
const Movement = require('../model/Movement');
// Create Movement
router.post('/', verify, async (req, res) => {
const post = new Movement({
description: req.body.description,
value: req.body.value,
groupId: req.body.group._id //**tried this**
});
try {
const savedMovement = await post.save()
res.status(200).send(res.json({ data: savedMovement }));
} catch (error) {
res.status(400).send(res.json({ message: error }));
}
});
module.exports = router;
Запрос отправлен
{
"description":"group1",
"value":"233",
"group":"5e506f3c56233d08f79bc8f3"
}