所以我一直在建立一个网站,为用户提供评论部分,消息,个人资料和购物。我一直想知道在为这些函数制作模式时,最好是在一个模式中使用
userSchema {
}
commentSchema {
}
gallerySchema {
}
或让他们像
一样分开dm=0
答案 0 :(得分:1)
没有人可以给你明确的答案,每个人都有不同的看法。
基本上,这取决于项目的可扩展性
我看到你对这个项目的要求
您可以创建单个架构并将其用作嵌入式表单,但如果您正在扩展应用程序,则不是一个好主意。
我的建议是为所有易于调试,扩展应用程序和可读形式的任务创建单独的架构。
修改强>
如果您要创建单独的架构并想要连接它们,那么您可以在populate
ObjectId
的文档
示例强>
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
var storySchema = Schema({
_creator : { type: Number, ref: 'Person' },
title : String,
fans : [{ type: Number, ref: 'Person' }]
});
var Story = mongoose.model('Story', storySchema);
var Person = mongoose.model('Person', personSchema);
<强>人口强>
Story
.findOne({ title: 'Once upon a timex.' })
.populate('_creator')
.exec(function (err, story) {
if (err) return handleError(err);
console.log('The creator is %s', story._creator.name);
// prints "The creator is Aaron"
});