好吧,我要为一个小网站设置我的mongo db模式,我需要的是将这个模式重现为mongo db集合:
product
-> tag1
->child_tag1
->child_tag2
-> tag2
->child_tag1
->child_tag2
-> tag3
->child_tag1
->child_tag2
这是使用mongo重现此架构的最佳方法吗?
我确实需要能够在不更新所有集合对象的情况下更改标签或子标签:) [EDITED]
原因我知道我的问题不是那么清楚,我需要澄清我正在尝试将mysql数据库网站转换为mongoDb网站。
所以我在mysql中有4个表:
products
id(AUTO) | product_name | qty
1 biscuits 34
2 limonade 29
tags
id(AUTO) | tag_name
1 sugar
2 eggs
3 vitamine C
tags_childs
id(AUTO) | id_tag | tag_child_name
1 1 glucouse
2 2 protein
3 2 chicken
products_tags
id_product | id_tag | id_tag_child
1 1 NULL
1 1 1
1 2 3
2 3 NULL
所以我使用products_tags表连接超过4个表(这就是为什么加热连接我切换到mongoDb :))
所以我可以用mongodb集合和对象重现这个场景吗?
thx :)
答案 0 :(得分:1)
只是想确保我理解您的上述文件显示的内容;基本上很多产品可以有很多标签,而标签下可以有子标签(编码标签 - > Php是编码的子标签)。
这是我对上述问题的理解,这就是我如何构建你的Mongo Collections:
产品系列:
{
"ProductName":"Sweet Jelly",
"Qty":9,
"Tags":[
ListOfTagIds
]
}
TagIds列表将是mongoDB自动分配给每个创建的新字段的唯一标识符。see here
从那里我创建了一个标签集合:
{
"TagName":"Coding Languages";
"ChildTags":[
$_idOfChildren
]
}
然后,如果你的标签有一个孩子:
{
"TagName":"PHP",
}
对于这个父/子关系,你可以从这个位于此处的优秀mongo资源中了解更多信息:Mongo Book - 从无联接开始。
祝你好运!