MongoDB即时计算货币兑换

时间:2015-01-30 15:20:48

标签: mongodb doctrine-odm

我试图根据最低/最高价格从收集中获得结果,但用户可能想要搜索英镑,而文档有美元。

我一直在考虑从对象和交换定价中查询Exchange集合,但是 因为mongodb不允许我使用" db"在$ where里面,它不能像这样工作。

对象集合(一条记录):

{
  "_id": ObjectId("5473572cf1a76349020041c6"),
  [...]
  "pricing" : {
    "basic" : 9470,
    "currency" : "USD"
  }
  [...]
}

货币兑换系列(一条记录,美元< - >欧元):

{
  "_id" : "USD",
  "rate" : 11344,
  "rateReverse" : 8815
}

1 个答案:

答案 0 :(得分:0)

一种选择是不。

我实际上在这个领域工作,最近不得不为许多欧盟国家和美国实施增值税和定价,尽管在SQL中,但仍然适用相同的规则。

而是在保存时在产品上设置货币。是的,你会说的第一件事是:&#34;如果货币在价格之前发生变化会怎样?&#34;

在我开创的其他类型的应用程序中,我已经使用了每周一次的cronjob,它实际上会在整个星期内逐步更新价格。

在otehr应用中,价格总是由人进行审查和监控。因此我不会更频繁地使用这个cronjob。如果它们(价格)大量流失,这可能导致10,000个产品需要同时进行审查,因此它会在一周内被分解。此外,一周内的重大货币变化极为严重,不太可能。

为了打破货币定价所创造的工作并使其更加自动化,我们认为任何超过或低于5%的转换都是重要的并标记价格,这意味着大多数价格都是自动换货的

我们最初曾经在MySQL的现场计算中做过,但它确实很慢,特别是在加载货币表JOIN时。