MongoDB中有许多具有相同字段或一个数组的文档

时间:2018-02-11 05:45:15

标签: arrays node.js database mongodb

我们假设我有一个系统,用户可以投票选择识别器附带的物品。

我是否应该为每个拥有投票数组的用户提供一份文件:

{user: A, votes: [x, y, z]}
{user: B, votes: [y, z]}
{user: C, votes: [x, z]}

或每次投票的文件很多:

{user: A, vote: x}, {user: A, vote: y}, {user: A, vote: z}
{user: B, vote: y}, {user: B, vote: z},
{user: C, vote: x}, {user: C, vote: z}

我觉得第二种设计更好,但我可能错了,因为我之前只有MySQL的经验。

1 个答案:

答案 0 :(得分:1)

据我所知,第一次设计比第二次设计好。因为您为特定用户保留了文档。但在第二种情况下,您要为同一用户创建多个文档。 或者您可以为特定的投票创建一个文档,即所有人都被选为xy .... 喜欢

   {votes: X, users: [A,C]}
   {votes: Y, users: [A, B]}
   {votes: Z, users: [A, B,C]}