注意:首次使用MongoDB。
技术:php mongodb 情形:
假设数据包含所提供的程序。文档看起来像:
{
LocationName: 'name of the location',
LocationAddress: 'Main street., Popular City, PC',
LocationManager: 'Mr. Manager',
LocationPhone: '555 555 1212',
Programs :
[
{
ProgramName : 'Excellence Prgram',
ProgramStartDate : '12-05-2012',
ProgramEndDate : '3-15-2013'
},
{
ProgramName : 'Excellence Prgram for me',
ProgramStartDate : '1-05-2012',
ProgramEndDate : '2-15-2013'
},
{
ProgramName : 'Excellence Prgram for three',
ProgramStartDate : '1-05-2012',
ProgramEndDate : '4-15-2013'
}
]
}
问题:
提前谢谢。
答案 0 :(得分:0)
原谅我,但我讨厌给出这种答案。我会从根本上改变你存储文件的方式:
我会让文档看起来像这样:
{
_id : 1823098123908831809
ProgramName : 'Excellence Prgram',
ProgramStartDate : '12-05-2012',
ProgramEndDate : '3-15-2013'
Location : {
LocationName: 'name of the location',
LocationAddress: 'Main street., Popular City, PC',
LocationManager: 'Mr. Manager',
LocationPhone: '555 555 1212',
}
您现在遇到的问题是,您可以查询具有Active程序的位置,但只提取符合您业务规则的程序将会非常棘手。
通过此reorg,您可以为集合中具有符合业务规则的日期的所有文档编写简单查询。
更改细节的位置确实变得更复杂,但这实际上是一个小用例。您经常会查询活动程序。地点很少改变管理者。
这也可以让你保持历史。如果您只更新程序相关运行的位置信息,您将拥有一份记录,表明2013年5月的卓越计划运行在Mains street的旧位置,与Manager先生(即使它现在在Front Street上运行,运行经理夫人)。