gpt4 book ai didi

node.js - 用于电子商务的 MongoDB 数据库架构

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:53 28 4
gpt4 key购买 nike

我目前正在构建一个多用户电子商务应用程序(例如 Shopify,但针对另一个行业)。我将 NodeJS 与 mongoDB 一起使用。存储订单的最佳做法是什么?

我目前有这个架构:

UserModel{
username,
password,
ownsStore:}

StoreModel{storeID,
owner:,
products:[productarray],
categories:[],
orders:[array with all OrderModel{
orderid:
oderitems}]}

商店中的 Orders 数组会变大吗?最好的做法是将订单放在自己的集合中,然后使用 find 将它们分配给商店,并且仅将 ObjectId 保存在商店的订单数组中?

最佳答案

当数据变大时,此模式会给您带来问题。您应该为每个订单创建不同的对象,并将它们映射到用户的任何唯一 ID,而不是这样做。

当您想要对各种订单进行排序时,就会出现问题,那么您必须使用聚合查询,这比普通查询需要更多时间,或者您必须使用 forEach 或映射函数手动对订单进行排序。

其次,如果嵌套数组发挥作用,您在更新文档时也会遇到问题,因为 mongoDB 不提供对深度嵌套数组的支持,因此您必须通过手动更新数组来一次又一次设置数组的值。

如果你制作不同的对象,那么所有这些事情都会变得更容易、更快。我曾经从事过电子商务项目并遇到过这些问题,所以我后来将它们更改为每个订单的不同对象。

因此为订单定义不同的模式,并在每个订单中添加用户的唯一ID,以便映射变得容易

关于node.js - 用于电子商务的 MongoDB 数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347856/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com