MongoDB:这些对象属于子文档数组还是新集合?

时间:2016-08-22 21:41:56

标签: arrays mongodb mean-stack meanjs mongoose-schema

我正在构建一个MEAN.js应用程序(一个初学者实验项目),我的模型需要存储属于特定用户的数据。这是模特:

{
        "_id" : ObjectId("57b633f677d71aae1b8b56dc"),
        "pauses" : [ 
            {
                "_id" : ObjectId("57b633f877d71aae1b8b56dd"),
                "momentResumed" : null,
                "momentPaused" : ISODate("2016-08-18T22:17:28.222Z")
            }, 
            {
                "_id" : ObjectId("57b633fb77d71aae1b8b56de"),
                "momentResumed" : null,
                "momentPaused" : ISODate("2016-08-18T22:17:31.641Z")
            }, 
            {
                "_id" : ObjectId("57b6392877d71aae1b8b56df"),
                "momentResumed" : null,
                "momentPaused" : ISODate("2016-08-18T22:39:36.032Z")
            }
        ],
        "momentCompleted" : ISODate("2016-08-18T22:39:33.366Z"),
        "momentStarted" : ISODate("2016-08-18T22:17:26.747Z")
}

我需要为每个用户存储大量(数百或数千)这些内容,并且随着应用的发展和添加新功能,我想在此添加更多字段。到目前为止,我已将它们填充到每个用户文档中的数组属性中(这意味着我现在有一个包含数组的文档数组),但这使得访问子数组中的数据变得困难,我担心它不是一个可持续的模式。

一些更有经验的MongoDB开发者会不会受到影响?这是一个可持续的模型,还是应该将所有这些对象移动到新的集合中,然后找出将它们连接到我的用户对象的好方法?

1 个答案:

答案 0 :(得分:0)

我带着我的直觉将这些物品移到他们自己的收藏中,这绝对是正确的决定。我的所有查询都可以简化。