我想创建一个更深入的集合..数据更有条理。
我知道如何访问数据,如何检索信息,但我不完全知道如何创建架构。
这是我的实际架构:
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
}
}
}
这可能吗?
如果是的话..你们能帮我吗?
最佳答案
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'
}
}
});
关于javascript - 如何动态创建集合名称(取决于用户信息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932834/