Получение данных NULL из коллекции из MongoDB Atlas - PullRequest
0 голосов
/ 26 апреля 2019

Я подключил свой код к MongoDB Atlas , используя Mongoose ... даже если в коллекции есть данные, в ответе показывается пустое значение.


Я хочу узнать точную проблему и устранить ее, потому что в коллекции есть необходимые данные

Детали коллекции представлены на этом изображении:

Enter image description here

1. Connectivity Code -
const mongoose = require('mongoose')
const uri = "mongodb+srv://<user>:<password>@cluster0-3awwl.mongodb.net/";
mongoose.connect(uri, {
    dbName: 'bing_bot'
}).catch((e) => {
    console.log('Database connectivity error ', e)
})

2.Model-
const mongoose = require('mongoose')

const Student = mongoose.model('student', {
    StudentName: {
        type:String
    },
    Contact: {
        type:String
    },
    Email: {
        type:String
    },
    BNo: {
        type:String
    },
    Year: {
        type:String
    }
})
 module.exports = Student`enter code here`

3. Retrieve data -
Student.findById(_id).then((data) => {
        console.log('data: ', data)})


4. Using MongoCLient

const uri = "mongodb+srv://<user>:<password>@cluster0-3awwl.mongodb.net/bing_bot"
MongoClient.connect(uri, function(err, client) {
   if(err) {
        console.log('Error occurred while connecting to MongoDB Atlas...\n', err);
   }
   console.log('Connected...');
   const collection = client.db("bing_bot").collection("student");
   // perform actions on the collection object
   collection.findOne({
       "StudentName": "Test"
   }).then((d) => {
       console.log('data: ', d)
   })

   const data = collection.find()
   console.log('data:1 ', data)
   client.close();
});

1 Ответ

0 голосов
/ 26 апреля 2019

Это потому, что экземпляры mongoose в ваших Connectivity Code и Model различны и не связаны между собой.Один подключен (Связь), а другой (Модель) нет.Вы должны использовать один и тот же экземпляр, поэтому экспортируйте один mongoose и импортируйте его там, где требуется.

// connectivityCode.js
const mongoose = require('mongoose')
const uri = "mongodb+srv://<user>:<password>@cluster0-3awwl.mongodb.net/";
mongoose.connect(uri, {
  dbName: 'bing_bot'
}).catch((e)=>{
  console.log('Database connectivity error ',e)
})

module.exports = mongoose; // <-- exporting

// model.js
const mongoose = require('./connectivityCode.js') // <-- importing
// rest of the code
...