1
我是来自关系世界的MongoDB的新手。任何帮助将不胜感激。我的病人具有以下属性列表:Mongodb时间序列查询
{"id": 101,
"demographics": {"sex": "male","dob": "1/1/1984"},
"hospital_visits": [
{ "date": "1/1/2012",
"diagnosis": ["diabetes","fractured hip"]
},
{ "date": "3/1/2012",
"treatment": ["hip replacement"],
"outcome": "normal discharge"
},
{ "date": "5/1/2012",
"diagnosis": ["hip infection"],
"outcome": "inpatient admission"
}
]
},
{"id": 102,
"hospital_visits": [
{ "date": "1/1/2013",
"diagnosis": ["fractured hip"]
},
{ "date": "3/1/2013",
"treatment": ["hip replacement"],
"outcome": "normal discharge"
}
]
}
现在,如果我想了解的患者,在某些时候有一个“髋骨骨折”的诊断(数量在医院探访的一个),在随后的日期(不在同一医院就诊)进行了“髋关节置换”治疗,并且在“髋关节置换”治疗日起3个月内有“住院入院”的结果,我如何框架我的MongoDB查询?按照这个逻辑,在给定的示例数据中,显然患者101是一个命中,而患者102不是,因此计数是1.但是,我该如何在MongoDB中制定此查询?有任何想法吗?如果我改变文档结构来解决这个问题,会更容易吗?
非常感谢!
尽管可能使用MongoDB Aggregation框架,但它当然不是专为它设计的(特别是关于“从一天开始的3个月”的部分)。 – WiredPrairie 2013-05-01 00:10:36
这正是聚合框架的设计目的。 OP的问题 - 你真的将日期存储为这种MM/DD/YYYY格式的字符串吗?我不认为你考虑将它实际存储为日期或ISODate类型? – 2013-05-06 07:38:21
如果治疗是在诊断的同一天完成的,它会在同一日期的子文档中列出,还是将它作为单独的子文档列出,但列出了相同的日期? – 2013-05-06 07:52:37