Mongoose模式和集合

时间:2015-01-23 03:00:25

标签: node.js mongodb collections mongoose schema

大家好,这是我第一次在这里提出问题,

我是MEAN堆栈的新手,现在我正在尝试使用它开发一个应用程序。据我所知,在mongodb中,一个Schema(数据库)可以有一个或多个集合(Tables(?)),当我使用mongoose时,我定义了一个Song模型和一个Artist模型:

对于宋:

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);

正如我所理解和看到的那样,问题在于,我想创建一个数据库/模式,并且在那里创建一个数据库/模式,并且有两个集合:

SongDatabase:
--- Song
--- Artist

在这种情况下我应该如何使用我的猫鼬模型/控制器和我的app.js?在此先感谢:)

2 个答案:

答案 0 :(得分:0)

我解决了所有疑虑,看看this tutorial,正如你在这里看到的那样,他们在一个数据库中实现了两个集合(我的内心关注)。一旦连接到数据库并对所需的集合执行发布,在本例中为线程或帖子,它将创建集合到mongodb。

答案 1 :(得分:0)

问题是你的连接字符串是mongodb:// localhost / song

歌曲成为您的数据库,在Song中您应该能够看到两个集合   - 宋   - ArtistS

可行的解决方案:刷新数据库,全部删除。开始清理并检查您的应用程序正在做什么。使用DB的另一个名称