2016-12-14 7 views
0

Я пытаюсь создать базу данных в MongoDB, используя npm Mongoose и Robomongo в качестве моего графического интерфейса. Я следовал за MongoDB Quickstart Docs по адресу http://mongoosejs.com/docs/index.html, но база данных не отображается в Robomongo. В основном, я просто пытаюсь, чтобы база данных «появлялась» в Robomongo, когда я запускаю файл server.js через Node.Проблемы с созданием базы данных MongoDB с помощью Mongoose

Когда я ввожу код ниже, из документов Quickstart от MongoDB, в Robomongo нет НИКАКОЙ базы данных.

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function() { 
    // we're connected! 
}); 

var kittySchema = mongoose.Schema({ 
    name: String 
}); 

var Kitten = mongoose.model('Kitten', kittySchema); 

Но ... Когда я добавляю в поле EmployeeID (ниже) в схеме, то база данных появляется в Robomongo. Может ли кто-нибудь объяснить разницу между этими двумя частями кода? Почему один работает, а другой нет?

var kittySchema = mongoose.Schema({ 
    name: {type: String}, 
    employeeid:{ 
     type: Number, 
     unique: true, 
     required: true 

    } 
}); 

ответ

1

Это потому, что employeeid имеет индекс на нем (из unique, по крайней мере, - вероятно required тоже не 100% уверены в том, как мангуст ручки необходимые поля). Mongoose автоматически создаст коллекции, на которых определены индексы.

В противном случае коллекция будет создана после того, как вы «что-нибудь» с ней сделаете (например, создание Kitten и использование .save() с этим).

+1

Омг, вы правы, что сработали! Я использовал функцию .save() и, наконец, создал коллекцию в базе данных только с атрибутом name. Это не появилось, пока я не сдержался. Я серьезно потратил последние 3 часа, пытаясь понять это. Благодаря!! – mfkogan

+1

Нет проблем - это немного неинтуитивно, но это так же, как и mongodb. Например, при использовании командной строки mongo вы можете переключиться на базу данных, выбрать ее, но эта база данных не будет существовать до тех пор, пока вы не вставите ее - несмотря на то, что вы ее выбрали. Там есть дополнительное чтение [здесь] (https://jira.mongodb.org/browse/SERVER-18313) в трекер-проблеме mongodb (см. Комментарии внизу). – dvlsg

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

  • Нет связанных вопросов^_^