2016-11-01 2 views
0

В оболочке mongo я не вижу коллекцию пользователей. Когда я набираю db.users.find(), он не показывает мою коллекцию. Либо когда я пытаюсь показать эту коллекцию, она не существует.Mongoose не создает коллекцию

var mongoose = require('mongoose'); 

module.exports = function(config) { 
    mongoose.connect(config.db); 
    var db = mongoose.connection; 
    db.on('error', console.error.bind(console, 'connection error')); 
    db.once('open', function callback() { 
    console.log('db opened'); 
    }); 

    var userSchema = mongoose.Schema({ 
    firstName: String, 
    lastName: String, 
    userName: String 
    }); 

    var User = mongoose.model('User', userSchema); 

    User.find({}).exec(function(error, collection) { 
    if (collection.length === 0) { 
     User.create({firstName: Zo, lastName: Keane, userName: Zkeane}); 
     User.create({firstName: Pop, lastName: Mean, userName: Pop}); 
     User.create({firstName: Joe, lastName: Animal, userName: Joe}); 
    } 
    }); 
}; 
+0

Вы перечислили все коллекции в базе данных, чтобы убедиться, что у вас есть название коллекции? –

+0

есть только одна коллекция, которую я создал с оболочкой, чтобы проверить, правильно ли работает мое монго. Поскольку я работаю с webstorm, я вижу это в mongo explorer, но не в этом – nakedFool

+0

Метод [** 'create()' **] (http://mongoosejs.com/docs/api.html#model_Model.create) асинхронно, почему вы называете это синхронно? – chridam

ответ

0

Когда вы не сдадите мангуст моделируют обратного вызова при вызове его функции (например create()), Mongoose предполагает, вы настраиваете обещание цепь, которая, насколько я знаю, устраняющее только тогда, когда вы звоните exec(). Попробуйте добавить обратный вызов console.log для каждого из этих шагов создания и посмотреть, не получаете ли вы коллекцию пользователей.

User.find({}).exec(function(error, collection) { 
    if (collection.length === 0) { 
     User.create({firstName: Zo, lastName: Keane, userName: Zkeane}, console.log); 
     User.create({firstName: Pop, lastName: Mean, userName: Pop},console.log); 
     User.create({firstName: Joe, lastName: Animal, userName: Joe},console.log); 
    } 
    }); 
+0

В нем говорится, что Zo не определено. – nakedFool

+0

Я только что скопировал ваш код для этой части. Если вы не определили эти переменные в области видимости, вы получите эту ошибку. – Paul

Смежные вопросы