Задать вопрос
Hiroshima
@Hiroshima
Ровный пацанчик нигде не пропадет!

Как извлечь параметр из объекта модели?

Доброго времени суток, у меня не получается из owner извлечь name в переменную, а потом вывести переменную в консоль.
Модель:
const { Schema, model } = require('mongoose');
const scheduleSchema = new Schema({
    owner: {
        name: {
            type: String,
            required: true
        },
        password: String
    },
    schedule: [{
        dow: {
            type: String,
            required: true
        },
        lessons: [{
            start: String,
            name: String
        }]
    }]
});
module.exports = model('Schedule', scheduleSchema);


Код который по моему мнению должен выводить имена в консоль, но в итоге выводит пустой массив, хотя данные в mongodb есть, и они функционируют успешно при регистрации пользователя:
var express = require("express");
var router = express.Router();
var Schedule = require("../models/schedule");

router.post("/", async function(req, res, next) {
    const isPasswordConfirmed = req.body.password === req.body.password_repeat;
    if (req.body.username && isPasswordConfirmed) {

        var info = await Schedule.find({ "owner.name": [] }); // <---  ВОТ В ЭТОЙ ШТУКЕ ВСЯ МОЯ ПРОБЛЕМА
        console.log(info)

        // Schedule.find([['owner.name']])
        //     // .sort([
        //     //     ['owner.name']
        //     // ])
        //     .exec(function(err, list_name) {
        //         if (err) { return next(err); }
        //         console.log(list_name);
        //     })

        const newUser = new Schedule({
            owner: {
                name: req.body.username,
                password: req.body.password
            }
        });
        await newUser.save();
        res.redirect(`/user/${newUser.owner.name}`);
    } else {
        console.log('Отсечка')
    }
    res.render("register", { error: { message: "Пароли не совпадают" } });
});
router.get("/", function(req, res, next) {
    res.render("register");
});

module.exports = router;
  • Вопрос задан
  • 22 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@frankieksai
Может
Schedule.find({ "owner.name": {$eq: 'someone' })
И по схеме у вас Onwer.name string а в коде сравниваете с пустым массивом..
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы