Вопрос:

MongoDB: эти объекты принадлежат массивам вложенных документов или новой коллекции?

arrays mongodb mean-stack meanjs mongoose-schema

36 просмотра

1 ответ

424 Репутация автора

Я создаю приложение 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? Является ли это устойчивой моделью, или я должен переместить все эти объекты в новую коллекцию, а затем найти хороший способ связать их с моими пользовательскими объектами?

Автор: Jonathan Источник Размещён: 22.08.2016 09:41

Ответы (1)


0 плюса

424 Репутация автора

Решение

Я пошел со своей интуицией и переместил эти предметы в их собственную коллекцию, и это было определенно правильное решение. Все мои запросы могут быть упрощены.

Автор: Jonathan Размещён: 16.09.2016 12:04
Вопросы из категории :
32x32