我正在计划一个集合架构,我想知道如何在标记字段中嵌入数据。
我有一个名为products的产品:
products
->_id
->product_name
->tags
我有一个标签集合:
tags
->_id
->tag_name
我有一个tags_child集合:
tags_childs
->_id
-> id_tag
->tag_child_name
现在我需要将标签和tags_childs保存到产品系列中,所以我认为保存在产品系列中是件好事:
标签:[[_ id_tag]:[_ id_tag_child,_id_tag_child,... etc],[_ id_tag]:[_ id_tag_child,_id_tag_child,... etc]]
但我认为这不是正确的方法,因为我需要能够查询产品集合,按标签和child_tags过滤。
因此,例如我需要通过以下方式过滤产品: + product_name:'roastbeef' +标签:'热' +儿童标签:'酱'
或过滤: + product_name:'roastbeef' +标签:'热' +儿童吊牌:'酱' +儿童吊牌:'刀' +标签:'晚餐'
过滤时始终需要父标记,而子标记是可选的。
如何实现正确的集合以在最后执行此类查询?
答案 0 :(得分:2)
读完这个;我在这里详细描述了你的模式:
真的没有理由持有这个关键表,因为最后它们都只是标签。您仍然可以通过使用上面建议的架构在数据库中搜索多个标签;并显示所有可用的标签以及它们与上述模式的关系;通过这种方式,它可以清理整个数据库,而不是使用MongoDB不需要的额外表来混淆它。
我强烈建议重新阅读这本电子书,以加强对Mongo赋予你的NoSQL格式的理解。