【发布时间】:2013-10-28 03:10:51
【问题描述】:
我是 MongoDB 的新手——只是想学习它——不过对 Java/SQL 并不陌生。假设我有一个用 Java/MongoDB 开发的购物车应用程序。进一步假设我有一个文档 Order.java。因此,Order 保留了通常的订单属性:总金额、送货地址、信用卡号等以及行项目的集合。现在,由于订单行项目是订单文档的一部分,因此如果不检索整个订单,就无法单独访问它们。对吧?
我希望它显示的内容类似于亚马逊在您查看一本书时所做的事情:“购买这本书的人——也购买了某某书”。如何在 MongoDB/Java 应用程序中确定?在 SQL 中,将 OrderLineItem 连接到自身或类似的东西或多或少是简单的查询,但在 MongoDB 中没有连接。我是否应该将所有订单文档加载到 Java 应用程序中,然后在 Java 中对它们进行排序和匹配(基本上在内存中)。如果谈论数百万个订单,这似乎不切实际,我还能做些什么吗?
【问题讨论】:
-
“购买 X 的人也购买了 Y”查询是 Neo4j 等图形数据库的典型用例。
-
另外,如果您具体了解如何处理该算法,则更容易找到 MongoDb 解决方案。正如@Philipp 所说,Mongodb 很有可能不适合。
-
而且,根据您的描述,您可能过度简化了算法。想想几年前 Netflix 在一场改进推荐算法的竞赛中捐赠了 100 万美元。 netflixprize.com//rules 。目标是提高 10%。这是一场为期三年的比赛。获胜者:netflixprize.com//community/viewtopic.php?id=1537
标签: mongodb mongodb-java