2016-09-19 34 views
1

我有一個包含DBRefs到根文檔的集合。我有數以萬計的文檔鏈接到我的數據收集中的單個根文檔。 這就是爲什麼我選擇不嵌套根文檔的數據。帶DBRef字段的MongoDB分片密鑰?

Data Collection: 
    _id : Auto-Created ID 
    ts : TimeStamp 
    field_1 : Whatever 
    ... 
    field_n : Whatever 
    root : DBRef 

"Root" Document Collection: 
    _id: Filename (unique) 
    field_1 : Whatever 
    ... 
    field_n : Whatever 

我覺得要分片我收藏的最好方法是使用領域tsroot._id作爲複合鍵。

這可能嗎?如果不是,最好的解決方案是什麼?只需將root._id字段複製到數據收集中的正常字段?

回答

0

要回答我的問題,這是我發現:

顯然,這是不可能的,因爲所有的有DBREFS在隨後的查詢在客戶端進行檢索。

我已經攝取了一個新的字段sh_key,它可以在應用程序端導入數據時實時創建。新字段將保存「複合分片鍵」的值。

該值是root._id值的拼接,以及ts的小時,其形式爲{root._id}:{hour of ts}