1
我有一個包含項的MongoDB的集合,可以通過多種標識方案MongoDB的指數上有多個標識字段嵌套對象
{
"identification" : {
"SCHEME1" : [ "9181983" ],
"SCHEME2" : [ "ABC" , "CDE" ],
"SCHEME4" : ["FDE"]
}
}
{
"identification" : {
"SCHEME2" : [ "LALALAL" ],
"SCHEME5" : [ "CH98790789879" ]
}
},
的項目將極有可能不是所有的標識方案,一些有標識(如上面的例子)1-2-4其他可能有不同的。識別方案的數量還沒有最終確定,並且會增長。每個標識只能存在一次。
欲執行兩個不同的查詢:
SEACH的項目與方案和鑑定,例如
db.item.find({"identification.SCHEME2": "CDE"})
使用特定識別方案(例如,
db.item.find({"identification.SCHEME2": {$exists: true}})
我的做法是創建稀疏索引:
db.item.createIndex({ identification.SCHEME1: 1 }, { sparse: true, unique: true});
db.item.createIndex({ identification.SCHEME2: 1 }, { sparse: true, unique: true });
db.item.createIndex({ identification.SCHEME3: 1 }, { sparse: true, unique: true });
and so on ....
這種做法非常完美,直到我發現有在MongoDB中a limit of 64 indexes on one collection。
有沒有人有一個想法,我怎麼可以索引整個領域「鑑定」與一個指數?或者我的文檔結構錯了?歡迎任何想法,謝謝。
獨特的索引是否仍然適用於防止重複標識,例如識別.SCHEME2:ABC?如何,重建我的收藏將不會那麼有趣:-) – mmx73
回答我自己的問題形式上面的評論:是的,一個獨特的關鍵作品完美。我的模式的改變可以用一個小批量和我的java對象模型中的增強來完成。再次感謝。 – mmx73