在MongoDB中按字段查询,可以在文档

时间:2016-02-05 20:09:28

标签: mongodb mongodb-query

我目前正在开发一个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的位置,因为它基本上可以在任何地方。

我知道我可以规范化我的模型,因此每个“子框”属性只包含对其他框的引用,但如果可能的话,我宁愿保持模型非规范化。

1 个答案:

答案 0 :(得分:0)

最后我决定规范化我的数据,因此每个框只包含对其他框的引用。