Я использую мангуст на узле js, и у меня есть коллекция страниц, такая как
{
"_id" : ObjectId("5b3cf0e7ee00450156711a47"),
"language" : "en",
"published" : true,
"content" : [
{
"title" : "my title 1",
"subTitle" : "subtitle 1",
"items" : [
{
"title" : "my item title 1",
"subTitle" : "item subtitle 1",
},
{
"title" : "my item title 2",
"subTitle" : "item subtitle 2",
}
]
},
{
"title" : "my title 2",
"subTitle" : "subtitle 2",
}
],
"createdAt" : ISODate("2018-07-04T16:08:07.057Z"),
"__v" : 0
}
Массив "content" включает в себя множество объектов, и некоторые из этих объектов включают в себя массив "items", который также включает в себя множество объектов. (вложено в 2 уровня)
Мне было интересно, не лучше ли будет ссылаться на объект содержимого вместо того, чтобы они были вложенными, потому что у них тоже есть вложенные документы (внутри элементов), так что это 2-уровневая вложенность.
Я должен использовать page.content.id(listId).items.id(id)
, чтобы найти их и page.content.id(listId).items.id(id)[key] = value; page.save();
, чтобы обновить их.
Учитывая, что не должно быть более 3 "элементов" и максимум 5 "контента", что, по вашему мнению, было бы лучшим решением, обновляя вложенный документ глубиной 2 уровня или контент, имеющий ссылку / коллекцию?
Я также планирую создать версии, которые повлияют на это решение, поскольку обновление может / создаст новую версию документа.