我有以下结构
{
"_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中使用嵌套数组是否可以?
答案 0 :(得分:1)
是的,这对您来说是一个很好的方法。嵌套数组可以使用,在这种情况下可能是最好的解决方案,可以在故事中嵌入喜欢的数据。通过这种方式,当您查询故事时,您也会得到它所喜欢的(非常快)。 缺点是,如果没有“喜欢”的集合,查询特定的“喜欢”将更加困难。查询用户的所有喜欢将更加困难。
在范围上,您还可以从故事中创建一系列嵌入式文档,并存储用户的cstdio
和id
。通过这种方式,名称字段被非规范化,但获得投票故事的用户的名称将更快,而无需对用户集合进行额外查询。
name