平臺:的MongoDB,春,SpringDataMongoDB內的Hashmap Mongo的查詢與未知的哈希鍵
我有一個名爲 「邂逅」 集合下面結構
遭遇:
{ "_id" : "49a0515b-e020-4e0d-aa6c-6f96bb867288",
"_class" : "com.keype.hawk.health.emr.api.transaction.model.Encounter",
"encounterTypeId" : "c4f657f0-015d-4b02-a216-f3beba2c64be",
"visitId" : "8b4c48c6-d969-4926-8b8f-05d2f58491ae",
"status" : "ACTIVE",
"form" :
{
"_id" : "be3cddc5-4cec-4ce5-8592-72f1d7a0f093",
"formCode" : "CBC",
"fields" : {
"dc" : {
"label" : "DC",
"name" : "tc",
},
"tc" : {
"label" : "TC",
"name" : "tc",
},
"notes" : {
"label" : "Notes",
"name" : "notes",
}
},
"notes" : "Blood Test",
"dateCreated" : NumberLong("1376916746564"),
"dateModified" : NumberLong("1376916746564"),
"staffCreated" : 10013,
"staffModified" : 10013
},
}
元素
protected LinkedHashMap<String, Field> fields;
: 「
fields
」 是使用一個Java哈希映射爲代表
的關鍵的散列映射()是不固定的,但在運行時生成的。
如何查詢獲取集合,其中「標籤」 =「TC」中的所有文件?
這不是可以查詢像db.encounter.find({'form.fields.dc.label':'TC'})
,因爲該元素的名稱「DC」不知道。我想跳過現在的位置和執行查詢,像:
db.encounter.find({'form.fields.*.label':'TC'});
任何想法?
此外,如何做這種情況下我最好使用索引?
很遺憾,您的架構是在這裏,因爲沒有簡單的方法做的缺點,你需要做'fields'對象的數組 – Sammaye
感謝。我得到它並朝着你所建議的方向前進。 –