MongoDB не может создать массив * * * при получении схемы с помощью _id - PullRequest
0 голосов
/ 29 апреля 2020

Я пытался добавить функцию подписки на свой веб-сайт, где подписчик подписывается, и этот класс добавляется в его массив классов в модели пользователей ... Вот мой код:

app.post("/subscribe", function (req, res) {
    const newClass = req.body.subClass;
    const id = req.user.id
    const ObjectId = mongoose.Types.ObjectId;
    User.findOneAndUpdate(
        { _id: new ObjectId(id) },
        { $push: { classes: newClass } },
        { upsert: false, new: true }
    );
    res.redirect("/dashboard")
});

Здесь моя схема:

const userSchema = new mongoose.Schema({
    email: String,
    password: String,
    secret: String,
    classes: [String]
});

и модель, на которую я нажимаю: const User = new mongoose.model("User", userSchema)

Вся помощь приветствуется

1 Ответ

0 голосов
/ 29 апреля 2020
app.post("/subscribe", async function (req, res) {
    try {
    const newClass = req.body.subClass;
    const id = req.user.id
    const ObjectId = mongoose.Types.ObjectId;
    await User.findByIdAndUpdate(
            id,       
            { $push: { classes: newClass } },
            {upsert: true, new: true }


   );
   }
   catch(err) {
    console.error(err);
   }
    res.redirect("/dashboard")

});

Вот пн goose ссылки ссылка

...