我目前正在开发一个RESTful API /思考实现。 为简单起见,在我的模型中,有一种名为“Box”的文档类型。盒子可以包含物品和其他盒子。 (有点像复合图案)这些子框可以任意深度嵌套。
在MongoDB中,这样的盒子文档看起来像这样:
{
_id: 0,
items: ['A', 'B', 'C'],
sub-boxes: [
{
_id: 1,
items: ['D', 'E']
},
{
_id: 2,
items: []
sub-boxes: [
{
_id: 3,
items: ['G']
}
]
}
]
}
我的REST API网址如下所示: GET / api / boxes /:id
我希望能够以与#3相同的方式检索#0框(从API的角度来看)。
GET / api / boxes / 0
GET / api / boxes / 3
我的问题是MongoDB中是否有可能查询字段_id,即使我不知道它在文档中的嵌套程度有多深?我不能在我的查询中硬编码_id的位置,因为它基本上可以在任何地方。
我知道我可以规范化我的模型,因此每个“子框”属性只包含对其他框的引用,但如果可能的话,我宁愿保持模型非规范化。
答案 0 :(得分:0)
最后我决定规范化我的数据,因此每个框只包含对其他框的引用。