mongoDB中的多级嵌套数组结构

时间:2015-10-19 12:00:24

标签: mongodb

我有以下结构

{
    "_id": {
        "$oid": "55ae24016fb73f6ac7c2d640"
    },
    "Name": "some name",
    "District": "some district",
    "Stories": [
        {
            "userId": "105304831528398207103",
            "story": "some story",
            "Likes": ["user id 1" ..... ],
            "_id": {
                "$oid": "55c055af1875b0002572cf94"
            }
        }
    ]
}

所以在这个要求中会有很多故事,而userId是发布它的作者的id。还有一个名为Likes的列,我将添加喜欢该故事的用户的用户ID。当我们不喜欢它时,我会从Likes数组中删除它们。

这个要求的更好的模型是什么?或者这个模型适合存储喜欢吗?

在mongodb中使用嵌套数组是否可以?

1 个答案:

答案 0 :(得分:1)

是的,这对您来说是一个很好的方法。嵌套数组可以使用,在这种情况下可能是最好的解决方案,可以在故事中嵌入喜欢的数据。通过这种方式,当您查询故事时,您也会得到它所喜欢的(非常快)。 缺点是,如果没有“喜欢”的集合,查询特定的“喜欢”将更加困难。查询用户的所有喜欢将更加困难。

在范围上,您还可以从故事中创建一系列嵌入式文档,并存储用户的cstdioid。通过这种方式,名称字段被非规范化,但获得投票故事的用户的名称将更快,而无需对用户集合进行额外查询。

name