【发布时间】:2011-02-24 18:21:12
【问题描述】:
这个嵌套示例被普遍认为是好的还是坏的做法(以及为什么)?
一个名为 users 的集合:
user
basic
name : value
url : value
contact
email
primary : value
secondary : value
address
en-gb
address : value
city : value
state : value
postalcode : value
country : value
es
address : value
city : value
state : value
postalcode : value
country : value
编辑:根据这篇文章中的答案,我已经应用以下规则更新了架构(数据与上面略有不同):
- 嵌套,但只有一层深度
- 删除不必要的键
-
利用数组让对象更灵活
{ "_id": ObjectId("4d67965255541fa164000001"), "name": { "0": { "name": "Joe Bloggs", "il8n": "en" } }, "type": "musician", "url": { "0": { "name": "joebloggs", "il8n": "en" } }, "tags": { "0": { "name": "guitar", "points": 3, "il8n": "en" } }, "email": { "0": { "address": "joe.bloggs@example.com", "name": "default", "primary": 1, "il8n": "en" } }, "updates": { "0": { "type": "news", "il8n": "en" } }, "address": { "0": { "address": "1 Some street", "city": "Somecity", "state": "Somestate", "postalcode": "SOM STR", "country": "UK", "lat": 49.4257641, "lng": -0.0698241, "primary": 1, "il8n": "en" } }, "phone": { "0": { "number": "+44 (0)123 4567 890", "name": "Home", "primary": 1, "il8n": "en" }, "1": { "number": "+44 (0)098 7654 321", "name": "Mobile", "il8n": "en" } } }
谢谢!
【问题讨论】: