Как я могу сделать, чтобы задачу или более сохраняли в свойстве массива пользователя, который их создал, в MongoDB? - PullRequest
0 голосов
/ 01 марта 2020

Я хочу, чтобы все вновь созданные задачи сохранялись и ассоциировались с вошедшим пользователем в MongoDB. Что у меня есть, так это:

Пользователь. js

const UserSchema = new mongoose.Schema({
    ...
    todos: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Todo' }]

});

Todo. js

const TodoSchema = new mongoose.Schema({
    ...
    creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },

});

И когда я создаю задание, я понятия не имею, как мне установить отношения между пользователем и задачами:

todoController. js

exports.createTodo = function (req, res) {
    const { text, creator } = req.body;

    const newTodo = new Todo({ text, creator });

    newTodo.save((err) => {
        if (err) {
            return res.status(400).json({
                message: `Todo wasn't saved beacause: ${err}`
            });
        }

        res.json({
            message: `Todo created successfuly`,
        })
    });
};

Я хочу создать правильную связь между зарегистрированным пользователем и задачами, точнее, я хочу сохранить задачи в задачах. собственность UserSchema.

1 Ответ

1 голос
/ 01 марта 2020

Вы должны хранить ссылку пользователя в каждом элементе задачи, а не наоборот.

Это ссылка на ссылки «Один ко многим» c, которые могут помочь вам в моделировании вашей БД.

https://docs.mongodb.com/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/

...