我想创建一个更深入的集合..数据更加整齐。
我知道如何访问数据,如何检索信息,但我不知道如何创建模式。
这是我的实际架构:
var MySchema = new Schema ({
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
});
我希望改变:
var BookingSchema = new Schema ({
monday: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
},
friday: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
},
saturday: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
}
sunday: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
}
});
这不是很干,所以我想知道我是否可以动态更改周的名称。如果我能,怎么办?
如果可以,真正的架构将是:
dinamicallyDay: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
}
这是我的第一个问题,现在是我的第二个问题。
如果第一个问题是可能的,我怎样才能在dinamicallyDay内创建入口?
例如,有人想要注册到星期一,但是这一天已经存在于我的数据库中,我想把这个寄存器放在里面,像这样:
monday: {
1: {
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
}
}
这可能吗?
如果是这样..你们可以帮助我吗?
答案 0 :(得分:1)
Schema
构造函数接受一个对象,因此没有理由不能动态构建它。
var mySchema = {}
['mon', 'fri', 'satur', 'sun'].forEach(function(day) {
mySchema[ day + 'day' ] = [{
event: {
full: String,
date: String,
name: String,
},
person: {
name: String,
phone: String,
email: String,
obs: String
}
}];
});
var BookingSchema = new Schema(mySchema);
请注意,我已将其更改为数组,因此现在您可以将更多事件推送到同一天,例如
db.update({'Search here'}, {
$push : {
friday : {
event: {
full: 'value',
date: 'value',
name: 'value'
},
person: {
name : 'value',
phone: 'value',
email: 'value',
obs : 'value'
}
}
});