Задать вопрос
@vladkobachek

Почему не добавляются поля в коллекцию mongodb?

Создаю backend на node.js, express.js + mongodb (облачное подключение).
mongoose.js
const mongoose = require("mongoose");

/* Connnect to our database */
// Get the URI of the local database, or the one specified on deployment.
const mongoURI =
  process.env.MONGODB_URI || "mongodb://localhost:27017/GoodSamaritanHub";

mongoose
  .connect(mongoURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
  })
  .then(() => console.log("Connected!"))
  .catch((error) => {
    console.log("Error connecting to mongodb. Timeout reached.");
  });

module.exports = { mongoose }; // Export the active connection.

как пример
models/admin.js
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const adminSchema = new Schema({
  username: {
    type: String,
    required: true,
  },
  password: {
    type: String,
    required: true,
  },
  admin: {
    type: Boolean,
    required: true,
  },
});

const Admin = mongoose.model("Admin", adminSchema);

module.exports = Admin;

routes/admin.js
"use strict";
const { mongoose } = require("../db/mongoose");
mongoose.set("bufferCommands", false);

const Admin = require("../models/admin");

const express = require("express");
const bcrypt = require("bcryptjs");
const router = express.Router();
const log = console.log;

// POST route to log in and create session
// <req.body> expects
// {
//     "username": String,
//     "password": String
// }
router.post("/admin/login",
  (req, res) => {
    const username = req.body.username;
    const password = req.body.password;

    // find admin
    Admin.findOne({ username: username })
      .then((user) => {
        if (bcrypt.compareSync(password, user.password)) {
          req.session.user = user._id;
          req.session.username = user.username;
          req.session.admin = true;
          res.status(200).send({ currUser: user, admin: true });
        } else {
          // wrong password
          res.status(401).send();
        }
      })
      .catch((error) => {
        log(error);
        res.status(400).send();
      });
});
module.exports = router;


Но в MongoDB Compass ничего не появляется, кроме того что я создал своими руками
664b32ae3f249411063047.png
Так же подключение к БД есть, но ничего опять же таки в БД не создается
Я уже не знаю что делать, прошу помогите
664b32f425557992384867.png
Может кто-то знает, пользуюсь MongoDB + Mongoose впервые, до этого PostgreSQL
Пробую технологии, хелп(
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
AlexanderK-A
@AlexanderK-A
UTC+10
Доброго дня!
Насколько я помню mongo и судя по вашему коду, ничего никуда добавляться и не должно
Вы просто описываете модель данных в коде, но ничего в БД не записываете.

Попробуйте, эксперимента ради, при запуске сервера обновить/добавить какой-нибудь документ в коллекцию admin.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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