我正在尝试根据最小/最高价格从集合中获得结果,但是用户可能想要在GBP中搜索,而document有一个美元。
我一直在考虑从对象和交换定价查询Exchange集合,但是由于mongodb不允许我在$where函数中使用"db“,所以它不能像这样工作。
对象集合(一条记录):
{
"_id": ObjectId("5473572cf1a76349020041c6"),
[...]
"pricing" : {
"basic" : 9470,
"currency" : "USD"
}
[...]
}货币兑换收款(一项记录,美元<->欧元):
{
"_id" : "USD",
"rate" : 11344,
"rateReverse" : 8815
}发布于 2015-01-30 15:41:13
一种选择是不要。
我实际上在这一领域工作,最近不得不为许多欧盟国家以及美国实施增值税和定价,尽管使用SQL,但同样的规则通常适用。
相反,您将产品上的货币设置为储蓄。是的,你要说的第一件事是:“如果货币在价格之前发生变化,会发生什么?”
在我创建的其他应用程序中,我使用了每周一次的cronjob,它实际上在整个星期缓慢地遍历每种产品,更新价格。
在otehr应用程序中,价格总是由人来审查和监控。正是因为这个原因,我才不会让这个职位变得更频繁。如果他们(价格)大打折扣,这可能导致10,000种产品需要一次审查,因为这一周就会出现故障。此外,在一周的时间内,货币的重大变化是极端的、边缘的、不可能的。
为了分解货币定价所产生的工作,使其更加自动化,人们认为任何超过或低于5%的换算都是重要的,并标出价格,这意味着大多数价格都是在货币变动中自动实现的。
我们最初曾经为MySQL做过现场计算,但是它变得非常慢,特别是在加载货币表联接时。
https://stackoverflow.com/questions/28239005
复制相似问题