如何在MongoDB中建立不平衡的多对多关系

我一直在努力为电子商务网站在MongoDB中建立关系。

我收集了一些代表我的商店将要销售的产品的文档,例如:

db.products.insertOne({
  _id: 1,name: "iPhone",sold_in: [ObjectId('1'),ObjectId('2')]
});

我还有另一家商店代表,例如:

db.stores.insertOne({
  _id: 1,name: "Apple Store",products_sold: [ObjectId(1)]
});

我在这里有多对多关系,一种产品可以在许多商店中销售,而一家商店可以销售许多产品。

我需要回答以下问题:

“在这家商店出售的产品是什么?”

“此产品在哪些商店销售?”

我通过在商店文档中存储产品的ObjectId引用数组和在产品文档中存储商店的引用数组来表示这种关系。

但是我觉得有更好的方法,经常会在商店中添加和删除新产品,这种模式使更新操作成为噩梦。

一件不常做的事情是更新产品,并改变其销售商店,这会发生,但是很少。

这种多对多关系在一方面是不平衡的,我该如何改善呢?您对此有何看法?

zwlyuan 回答:如何在MongoDB中建立不平衡的多对多关系

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3164849.html

大家都在问