平均堆栈模式
Mean stack Schema
我正在使用 MEAN 堆栈,其中 users
可以构建 charts
。
where `user, chart` = mongoose schemas
我的问题是如何 link 用户自己创建的图表,以便我可以在管理页面上显示过去创建的图表?
var ChartSchema = new Schema({
name: [String],
type: [String],
data: [Array]
});
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
twitter: {},
google: {}
});
通过在 ChartSchema 中添加属性或在 UserSchema 中添加图表数组。
在两个架构上添加和 _id 字段。
ChartSchema = new Schema({
// ...
_creator: { type: Number, ref: 'User' },
});
或者
UserSchema = new Schema({
// ...
chartsCreated: [{ type: Number, ref: 'Chart' }]
});
假设 ChartSchema 注册为 Chart
,UserSchema 注册为 User
。
或者您可以在 ChartSchema 中添加一个名为 created 的属性,这样您就可以按发布时间显示某人的图表,如下所示:
var ChartSchema = new Schema({
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Charts', ChartSchema);
和
var UserSchema = new Schema({
// ...
charts: [{
type: Schema.ObjectId,
ref: 'Charts'
}]
});
mongoose.model('User', UserSchema);
在控制器文件中,例如:
Charts.find().sort('-created').populate('user', 'displayName').exec(function (err, charts) {
// ...
});
要了解更多详情,您可以查看MEAN Stack Docs and Mongoose Docs
在您的用户架构中添加一个新字段 chartData,您无需更改图表架构。
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
twitter: {},
google: {},
chartData : [ChartSchema]
});
并导出您的架构
mongoose.model('User', 用户架构)
我正在使用 MEAN 堆栈,其中 users
可以构建 charts
。
where `user, chart` = mongoose schemas
我的问题是如何 link 用户自己创建的图表,以便我可以在管理页面上显示过去创建的图表?
var ChartSchema = new Schema({
name: [String],
type: [String],
data: [Array]
});
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
twitter: {},
google: {}
});
通过在 ChartSchema 中添加属性或在 UserSchema 中添加图表数组。 在两个架构上添加和 _id 字段。
ChartSchema = new Schema({
// ...
_creator: { type: Number, ref: 'User' },
});
或者
UserSchema = new Schema({
// ...
chartsCreated: [{ type: Number, ref: 'Chart' }]
});
假设 ChartSchema 注册为 Chart
,UserSchema 注册为 User
。
或者您可以在 ChartSchema 中添加一个名为 created 的属性,这样您就可以按发布时间显示某人的图表,如下所示:
var ChartSchema = new Schema({
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Charts', ChartSchema);
和
var UserSchema = new Schema({
// ...
charts: [{
type: Schema.ObjectId,
ref: 'Charts'
}]
});
mongoose.model('User', UserSchema);
在控制器文件中,例如:
Charts.find().sort('-created').populate('user', 'displayName').exec(function (err, charts) {
// ...
});
要了解更多详情,您可以查看MEAN Stack Docs and Mongoose Docs
在您的用户架构中添加一个新字段 chartData,您无需更改图表架构。
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
twitter: {},
google: {},
chartData : [ChartSchema]
});
并导出您的架构
mongoose.model('User', 用户架构)