2012-06-06 123 views
-1

這是您存儲mongoDB貨幣匯率的方式嗎? 它確實對我們有用,但是我看到一些限制,如果它很難讓我們做日期/時間搜索,而不是我們將要做的事情是分割日期和時間,然後將它放在選擇下拉列表中或一些東西。存儲貨幣兌換是MongoDB

請給我你的意見。

{ 
    "currentexchange": { 
    "0": { 
     "to": "NZD", 
     "rate": "1.2879", 
     "updated": "8: 42pm" 
    }, 
    "1": { 
     "to": "USD", 
     "rate": "0.9777", 
     "updated": "8: 42pm" 
    }, 
    "2": { 
     "to": "KWD", 
     "rate": "0.2739", 
     "updated": "8: 42pm" 
    }, 
    "3": { 
     "to": "GBP", 
     "rate": "0.6354", 
     "updated": "8: 42pm" 
    } 
    }, 
    "exchangehistory": { 
    "2012-06-06T09: 51: 25+10: 00": { 
     "0": { 
     "to": "NZD", 
     "rate": "1.2875" 
     }, 
     "1": { 
     "to": "USD", 
     "rate": "0.9768" 
     }, 
     "2": { 
     "to": "KWD", 
     "rate": "0.2742" 
     }, 
     "3": { 
     "to": "GBP", 
     "rate": "0.6351" 
     } 
    }, 
    "2012-06-06T10: 00: 09+10: 00": { 
     "0": { 
     "to": "NZD", 
     "rate": "1.288" 
     }, 
     "1": { 
     "to": "USD", 
     "rate": "0.9774" 
     }, 
     "2": { 
     "to": "KWD", 
     "rate": "0.2743" 
     }, 
     "3": { 
     "to": "GBP", 
     "rate": "0.6354" 
     } 
    }, 
    "2012-06-06T10: 15: 07+10: 00": { 
     "0": { 
     "to": "NZD", 
     "rate": "1.2878" 
     }, 
     "1": { 
     "to": "USD", 
     "rate": "0.978" 
     }, 
     "2": { 
     "to": "KWD", 
     "rate": "0.274" 
     }, 
     "3": { 
     "to": "GBP", 
     "rate": "0.6357" 
     } 
    }, 
    "2012-06-06T10: 30: 10+10: 00": { 
     "0": { 
     "to": "NZD", 
     "rate": "1.2873" 
     }, 
     "1": { 
     "to": "USD", 
     "rate": "0.977" 
     }, 
     "2": { 
     "to": "KWD", 
     "rate": "0.2737" 
     }, 
     "3": { 
     "to": "GBP", 
     "rate": "0.6352" 
     } 
    }, 
    "2012-06-06T10: 45: 08+10: 00": { 
     "0": { 
     "to": "NZD", 
     "rate": "1.2879" 
     }, 
     "1": { 
     "to": "USD", 
     "rate": "0.9777" 
     }, 
     "2": { 
     "to": "KWD", 
     "rate": "0.2739" 
     }, 
     "3": { 
     "to": "GBP", 
     "rate": "0.6354" 
     } 
    } 
    }, 
    "from": "AUD" 
} 

那麼我們如何明確使用這個。

當用戶想要提款時,我們需要能夠獲得他們要求提款的匯率。

如果用戶有兩種類型的貨幣並且說默認是AUD,他們用美元支付某人,那麼我們需要轉換它,或者如果他們沒有足夠的錢,我們還需要能夠進行實時轉換率更改美元和他們有澳元,然後我們需要浸入澳元兌換一些支付其餘的費用。

+0

你期望運行什麼類型的查詢?瞭解大型查詢是建模數據的關鍵。 –

+0

@GatesVP我已經在上面編輯過,以解釋我們如何使用它。 – RussellHarrower

+0

看起來像你的收藏將有每個貨幣一個文件?這可能是非常有問題的,因爲它會不斷增長無限... –

回答

0

有幾個問題需要考慮這裏:使用的ID &的多個集合

使用的ID

您的數據格式似乎關閉。考慮在currentExchange收集如下:

"_id" : "AUD", 
"NZD": { "rate": "1.2879", "updated": "8: 42pm" }, 
"USD": { "rate": "0.9777", "updated": "8: 42pm" }, 
... 

這將是查詢最簡單的佈局。

多個集合

您將要爆發currentExchangeexchangeHistory成兩個集合。您希望currentExchange保持較小,並且會利用不同的索引。

按照您的設計,您的文檔將變得非常大,然後失敗。

+0

@Gates_VP我明白你的意思,每個交換歷史都會被存儲爲一個新的行或集合? – RussellHarrower

+0

每個交換歷史記錄都將成爲「歷史」集合中的新行。您可以在'from'或'to'或某種組合中對這些項目進行索引:'AUD_USD_201205071205'將很容易識別唯一的密鑰。如果你想把AUD的歷史記錄到美元,你可以做一個'find({_ id:/^AUD_USD /})。sort({_ id:1})'。 –