【发布时间】:2013-12-28 09:16:30
【问题描述】:
我正在定义我的应用程序模型,并且我为我定义的每个模型都有单独的文件,我的问题是,我需要创建一个使用子文档的模型,但那是在另一个文件上,我怎么能在我的模型上使用该架构?我的意思是我见过的所有示例都在同一个文件中声明了子模型和父模型,例如:
var childSchema = new Schema({ name: 'string' });
var parentSchema = new Schema({
children: [childSchema]
});
我有一个名为user.js 的文件定义了用户模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
_id : Schema.Types.ObjectId,
username : String,
});
module.exports = mongoose.model( 'User', userSchema );
在另一个名为 sport.js 的文件中,我有另一个运动模型定义:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var sportSchema = new Schema({
_id : Schema.Types.ObjectId,
name : String
});
module.exports = mongoose.model( 'Sport', sportSchema );
所以在我的用户模型上,我需要为用户将遵循的运动定义一个字段,但我不知道如何定义该子文档,因为运动定义在另一个文件中,我尝试了这个:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var SportsModel = require('sport');
var userSchema = new Schema({
_id : Schema.Types.ObjectId,
username : String,
sports : [SportsModel]
});
module.exports = mongoose.model( 'User', userSchema );
但我不确定这是否是正确的方法,因为我要导出的是模型,而不是架构。
提前致谢,我想在单独的文件中定义每个模型以保持顺序。
【问题讨论】:
标签: node.js mongodb express mongoose