2015-01-23 3 views
0

Привет всем, это первый раз, когда я задать вопрос здесь,Mongoose схемы и коллекции

Я очень новый в стек MEAN и теперь я пытаюсь разработать приложение, использующее его. Как я понимаю, в MongoDB-схема (базы данных) может иметь один или несколько коллекций (? Таблицы()), когда я использую мангуст я определить модель песни и модель Художника:

Для песни:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

var songSchema = new Schema({ 
    songName:  { type: String }, 
    songArtist:  [{type : Schema.Types.ObjectId, ref : 'Artist'}] 
}); 

module.exports = mongoose.model('Song', songSchema); 

Для художника:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

var artistSchema = new Schema({ 
    artistName:  { type: String } 
}); 

module.exports = mongoose.model('Artist', artistSchema); 

Моего app.js выглядит следующим образом:

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/song', function(err, res) { 
    if(err) throw err; 
    console.log('Connected to Database'); 
}); 

var models = require('./models/song')(app, mongoose); 

вопрос с этим я s, как я понимаю, и увидел, что я создаю 2 базы данных/схемы в то время как я хочу, чтобы создать один базы данных/схемы и имеют эти две коллекции там:

SongDatabase: 
--- Song 
--- Artist 

Как я должен это делать в этом случае с мои модели/контроллеры mongoose и мои приложения. Спасибо заранее:

+0

Вам нужно только один раз выпустить 'mongoose.connect' в вашем приложении, а« база данных »определена в строке подключения. Все коллекции будут созданы в этой базе данных, если вы не указали иначе. Вы, кажется, вводите в заблуждение условия здесь. Сначала я хотел бы сделать несколько уроков мангуста и MongoDB, чтобы понять их правильно. Легко искать. –

+0

Я искал несколько учебников, но все они используют только одно соединение, могли бы вы предоставить тот, который выглядит так, как я хочу? (1 дБ, 2 сборника) –

ответ

0

Я решил все свои сомнения, взглянув на this tutorial, как вы можете видеть здесь, они реализуют две коллекции в одной базе данных (моя внешняя проблема). После того, как вы подключитесь к базе данных и выполните запись в нужную коллекцию, в этом случае поток или сообщение, он создаст коллекцию в mongodb.

0

Проблема есть в том, что ваша строка соединения MongoDB: // локальный/песня

Песня становится вашей БД, и в мелодии, которую вы должны быть в состоянии увидеть две коллекции - ПЕСНИ - ХУДОЖНИКИ

Положительные решения: Промыть базу данных, сбросить все. Начните очистить и проверьте, что делает ваша заявка. Используйте другое имя для DB

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