深度嵌套还是不同的集合mongodb?

发布于 2024-09-07 06:11:14 字数 438 浏览 6 评论 0原文

我正在尝试找出使用 mongodb 和 mongomapper 存储我的 daat 的最佳方法。

我有类别,每个类别都可以用许多属性来描述,例如长度(以毫米为单位)、重量(以千克为单位)等。

我希望每个用户都能够创建自己的属性来描述产品类别。

例如:

用户 A 想要存储他的类别“汽车”,其中包含车轮数量和汽车长度(以毫米为单位) 用户 B 希望存储其类别“汽车”,其中包含车轮数量、长度(毫米)和重量(千克)。

每个人的类别都是相同的,但属性可能不同。

我是否应该将其存储为类别集合,然后每个类别包含用户数组,每个用户包含属性 anmes 和单位的哈希值?

或者我应该以某种方式将其分成多个集合?

或者有没有人能想到更好的方法?

是深度嵌套的问题吗?

非常感谢 advancfe 的帮助和建议。 里克

I am trying to work out the best way to store my daat using mongodb and mongomapper.

I have category and each category can be described by many attributes so length in mm, weight in kg etc.

I want each user to be able to create their own attributes to descibe a category of products.

So forexample:

user A wants to store his category "cars" with number of wheels and length of car in mm
user B wants to store his category "cars" with number of wheels and length in mm and weight in kg.

The categories are the same for everyone but attributes can be different.

Should i be storing this as category collection then each cateogry contains and array of users each containing a hash of attribute anmes and units ?

Or should i be breaking this up into multiple collections somehow ?

Or is there a better way anyone can think of ?

Is it a problem with deep nesting ?

thanks alot in advancfe for help and advice.
rick

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森林迷了鹿 2024-09-14 06:11:14

让我们从简单的答案开始。将属性存储为项目文档中的字段。这就是使用无模式数据存储的原因。

现在,关于将哪个女巫属性与哪个物品放在一起。简短回答:您描述的任何方法都可以;所有这些都在效率方面进行了一些权衡。

我认为你的模型是这样的:

  • 有一个集合用户
  • 许多集合称为类别的项目,
  • 每个项目是一个类别的成员
  • 每个用户有许多项目
  • 类别中的每个项目有许多潜在属性取决于用户
  • 一些用户将共享属性

我将有以下集合:用户,*类别(例如汽车、船、房屋等...)、属性。

属性集合将列出一个类别(例如汽车)、该类别中项目的属性(例如燃油里程)以及使用该属性的 user_ids 列表。

Lets start with the easy answer. Store the attributes as fields in the items document. This is why one uses a schema-less data store.

Now, about which witch attributes to put with which item. Short answer: Any of the ways you describe will work; all have some trade-offs in terms of efficiency.

I think your model goes like this:

  • There is a collection users
  • There are many collections of items called categories
  • each item is a member of a category
  • each user has many items
  • every item in a category has many potential attributes depending on the user
  • some users will share attributes

I would have the following collections: users, *categories(e.g. cars, boats, houses, etc...), attributes.

The attributes collection would list a category(e.g. cars), and attribute of items in that category (e.g. fuel mileage), and a list of user_ids who use that attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文