深度嵌套还是不同的集合mongodb?
我正在尝试找出使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
让我们从简单的答案开始。将属性存储为项目文档中的字段。这就是使用无模式数据存储的原因。
现在,关于将哪个女巫属性与哪个物品放在一起。简短回答:您描述的任何方法都可以;所有这些都在效率方面进行了一些权衡。
我认为你的模型是这样的:
我将有以下集合:用户,*类别(例如汽车、船、房屋等...)、属性。
属性集合将列出一个类别(例如汽车)、该类别中项目的属性(例如燃油里程)以及使用该属性的 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:
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.