我正在对使用mongo的电子商务的用户进行销售分析,我发现了这个性能问题:
我需要知道按创建日期过滤的一大堆用户在某个产品中花了多少钱。
简化我的用户模型就像这样
var userSchema = Schema({
firstName: String,
lastName: String
})
简单地将订单模型看起来像这样:
const orderSchema = Schema({
totalAmount: String,
user: ObjectId,
products: {
reference: [
{product: ObjectId, quantity: 3},
{product: ObjectId, quantity: 2}
]
}
})
没有从用户架构到订单架构的引用,因此对于具有8000个用户的数组,逐个异步地查找具有每个用户ID的所有订单,然后在订单内检查它们是否具有目标产品。更不用说进行全球计算..
这需要mongo永远,所以它不适合我。在这种情况下,有什么想法可以提高性能吗?