Mongodb时间序列查询

时间:2013-04-30 23:25:55

标签: mongodb database

我是来自关系世界的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中制定该查询?有任何想法吗?如果我更改文档结构以解决此问题会更容易吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

一个选项可以是:

如果这些查询的数量相当多,那么,每当您更新文档时检查所需的条件,然后存储合适的变量(比如一些布尔值),您就可以索引该变量。 在这种情况下,计数将非常快地返回。