TypeError: невозможно прочитать свойство «найти» неопределенного на мангусте

Я новичок в MongoDB Atlas. Я пытаюсь запросить существующую в настоящее время коллекцию «dogs» в моей базе данных «test2», используя mongoose.

введите здесь описание изображения

Я использую nodeJS для выполнения запроса

var mongoose = require('mongoose');    
mongoose.connect('mongodb+srv://*****:*******[email protected]/test?retryWrites=true&w=majority', {
useUnifiedTopology: true,
useNewUrlParser: true,
})
.then(() => console.log('DB Connected!!!'))
.catch(err => {
console.log('did not work');    });    
var db = mongoose.connection;   
db.on('error', console.error.bind(console, 'connection error:'));

db.once('open', function() {
    db.dogs.find().forEach(printjson);     //ERROR!
 });

Что приводит к ошибке: TypeError: Cannot read property 'find' of undefined

Почему собаки undefined?


person cmote    schedule 03.01.2020    source источник


Ответы (1)


В вашем коде dogs должна быть модель мангуста. Также изменена строка подключения mongoDB на test2. Попробуйте следующее:

var mongoose = require('mongoose');
mongoose.connect('mongodb+srv://*****:*******[email protected]/test2?retryWrites=true&w=majority', {
    useUnifiedTopology: true,
    useNewUrlParser: true,
})
    .then(() => console.log('DB Connected!!!'))
    .catch(err => {
        console.log('did not work', err);
    });
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));

const dogsSchema = new mongoose.Schema({
    any: {}
});

const Dogs = mongoose.model('dogs', dogsSchema, 'dogs');

db.once('open', function () {
    Dogs.find().lean(true).exec((err, data) => {
        console.log('Err ::', err, 'data ::', data)
    })
});
person whoami - fakeFaceTrueSoul    schedule 03.01.2020
comment
Спасибо, это работает. Однако кажется странным, что нам нужно создать новую схему для этой операции. - person cmote; 04.01.2020
comment
@cmote: мы должны и обычно создаем схемы в мангусте на регулярной основе, что более полезно при записи. Пожалуйста, проверьте это также: stackoverflow.com/questions/21429630/ - person whoami - fakeFaceTrueSoul; 04.01.2020