Извлекайте данные, используя mon goose и Express / Node Js - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь получить данные из базы данных MongoDB, используя mon goose и express в Node js, я создал модель и успешно подключился к базе данных, но проблема в том, что я получаю пустой ответ, пока там уже есть документы в коллекции базы данных.

Класс модели:

const mongoose = require("mongoose");
const RendezvousSchema = mongoose.Schema({
    idpatient: {
        type: String,
        required: true
    },
    idmedecin: {
        type: String,
        required: true
    },
});

module.exports = mongoose.model("Rendezvous", RendezvousSchema);

index. js:

const express = require("express");
const router = express.Router();
const Rendezvous = require("../model/RendezVous");
/* Get Rendez Vous By id */
/**
 * @method - GET
 * @description - Get Rendez vous Medecin
 * @param - /user/GetRdvMedecin
 */
router.get("/GetRdvMedecin", async (req, res) => {
  try {
    const rdv = await Rendezvous.find();
    res.json(rdv);
    console.log('Fetched');
  } catch (e) {
    res.send({ message: "Error in Fetching rendez vous" });
  }
});
/* Get Rendez Vous By id*/
module.exports = router;

это console.log:


Server Started at PORT 4000
Connected to DB !!
Fetched

Почтальон GET запрос на: 'http://localhost: 4000 / user / GetRdvMedecin '

Ответ почтальона: '[]'

образец документа:

{
  "_id":{
    "$oid":"5e7396787b32a12e38a7aa7d"
  },
  "idpatient":"5e6ce11bc31de6132ca454a1",
  "idmedecin":"5e5aa519190d8c2818a66a0a"
}

Подсказка: когда я использовал другую модель ('user'), она работает нормально и возвращает ответ.

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Решено добавлением названия коллекции в модель

const mongoose = require("mongoose");

const RendezvousSchema = mongoose.Schema({
    idpatient: {
        type: String
    },
    idmedecin: {
        type: String
    }
},{
    collection: 'Rendezvous'
});

// export model user with UserSchema
module.exports = mongoose.model("Rendezvous", RendezvousSchema);
0 голосов
/ 20 марта 2020

Ваш запрос .find () может вернуть более одного объекта, я всегда возвращаю что-то вроде этого:

router.get("/GetRdvMedecin", async (req, res) => {
 let results;
 try {
    results = await Rendezvous.find();
  } catch (e) {
    res.send({ message: "Error in Fetching rendez vous" });
  }
  res.json({rendezvous: results.map(result => result.toObject({getters: true}) )});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...