我正在开发一个网站,其中每个用户都有不同货币的余额。在网站的整个生命周期中,我将定期添加新货币。
我正试图找出使用mongoose存储余额的最佳方法。我目前正在处理这样的余额:
var UserSchema = new Schema({
...
balances: {
mck: {
type: Number,
default: 100.0,
addresses: String
},
btc:{
type: Number,
default: 10.0,
address: String
}
}
});
但它似乎不是最好的方法。每次我想添加新货币时,现有文件都不会包含它。 允许数据库中的文档与架构不同步是否有缺点?
我想通过使用子文档存储货币及其各自的余额来使架构更具动态性:
var BalanceSchema = new Schema({
currency: String,
amount: Number,
address: String
});
但是在更换余额等时会有很多回调需要处理。
哪种方法最好?还是我错过了另一个?
答案 0 :(得分:0)
如果您将来需要动态添加货币,则应选择将“余额”作为数组。
balances: [
{
curr: "mck",
bal: 123,45
},
{
curr: "btc",
bal: 42
}
]
它有助于将来的查询(like so),并且它还为每个文档提供了很多的灵活性。
或者为什么不选择像以下那样的平面架构:
{
user: "user1",
currency1balance:54,76,
currency5balance:1024
}