3

我是 MongoDB 的新手——只是想学习它——虽然对 Java/SQL 并不陌生。假设我有一个用 Java/MongoDB 开发的购物车应用程序。进一步假设我有一个文档 Order.java。因此,Order 保留了通常的订单属性:总金额、送货地址、信用卡号等以及行项目的集合。现在,由于订单行项目是订单文档的一部分,因此如果不检索整个订单,就无法单独访问它们。正确的?
我希望它显示出类似于亚马逊在您查看一本书时所做的事情:“购买这本书的人——也购买了某某书”。如何在 MongoDB/Java 应用程序中确定?在 SQL 中,将 OrderLineItem 连接到自身或类似的东西或多或少是简单的查询,但在 MongoDB 中没有连接。我是否应该将所有订单文档加载到 Java 应用程序中,然后在 Java 中对它们进行排序和匹配(基本上在内存中)。如果谈论数百万个订单,这似乎不切实际,我还能做些什么吗?

4

2 回答 2

2

您可以只使用 Apache Mahout https://mahout.apache.org/。它是一个非常强大的机器学习库,适用于分布式系统和 Hadoop 和 MongoDB 等 NoSQL 数据库。它是开源的并用 Java 编写。

于 2014-03-26T17:02:32.527 回答
0

通过在订单文档中将所有行项目放在一个数组中,可以促进这种类型的查询。如果经常执行此查询,我将采用面向批处理的过程来重新格式化旨在满足此查询的数据副本。当事情变得艰难时,总会有 map Reduce。

于 2014-02-28T13:38:19.350 回答