如何动态创建集合名称(取决于用户信息)
How create collections names dynamically (depending on the user info)
我想创建一个更深入的集合.. 数据更有条理。
我知道如何访问数据,如何检索信息,但我不完全知道如何创建模式。
这是我的实际架构:
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'
}
}
});
我想创建一个更深入的集合.. 数据更有条理。
我知道如何访问数据,如何检索信息,但我不完全知道如何创建模式。
这是我的实际架构:
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'
}
}
});