1

私は、リレーショナルの世界から来た 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"
        }
     ]
  }

ここで、ある時点 (病院訪問の 1 つ) で「股関節骨折」と診断され、その後に「股関節置換術」治療を受けた患者の数を知りたい場合 (同じ病院の訪問)、「股関節置換術」治療の日から 3 か月以内に結果として「入院」があった場合、MongoDB クエリをどのように構成すればよいですか? このロジックを使用すると、指定されたサンプル データでは、明らかに患者 101 がヒットし、患者 102 はヒットしていないため、カウントは 1 になります。しかし、MongoDB でこのクエリを作成するにはどうすればよいでしょうか? 何か案は?この質問に対処するために文書構造を変更すると、より簡単になりますか?

どうもありがとう!

4

1 に答える 1

0

1 つのオプションは次のとおりです。

これらのクエリの数がかなり多い場合は、ドキュメントを更新するたびに、必要な条件を確認してから、適切な変数 (たとえば、いくつかの Boolean ) を格納し、その変数にインデックスを付けることができます。その場合、カウントは非常に速く返されます。

于 2013-05-01T01:38:07.003 に答える