2016-08-30 9 views
1

Я использую MongoDB в качестве моей базы данных в приложении node.js. Мое уточнениеДокумент хранения в mongoDb

считает меня есть 2 коллекции, A, B.

структура документа B является

{ 
"key1":"value1", 
"key2":[_id(1) from collection A, 
     _id(2) from collection A, 
     ,,,so on.. 
     ] 
} 

Так что, когда я извлечение коллекции B, я должен получить подробную информацию о коллекции А также , Поэтому мне нужно зациклиться здесь (key2) и найти детали из коллекции A, которая утомительна.

Вопрос в том, лучше ли хранить его вместе с деталями? как мы ниже

{ 
    "key1":"value1", 
    "key2":[{ 
       "keyA":"valueA" 
      }, 
      { 
       "KeyA":"valueA" 
      } 
      ,,,so on.. 
      ] 
    } 

Теперь его просто нет здесь для петли. Также в вышеуказанном случае пользователь может обновить "key2" может удалить, добавить из интерфейса. В этом случае полезно удалить документ и создать новый с обновленным массивом?

Пожалуйста, поделитесь своими идеями. Заранее спасибо ...

ответ

0

Если вы хотите иметь простое обновление, удаление и извлечение, может быть, вы должны думать о том, что таблицы подключения А и В.

Скажем, это название коллекции AB

{ 
    keyAB: "keyAB" 
    keyA: "valueA", 
    keyB: "keyB" 
} 

В этом случае вы должны добавить новый документ для каждого подключения. Извлечение, удаление и обновление в этом случае легко, так как вы просто удаляете один документ.

Если вы действительно не хотите, чтобы иметь третью коллекцию, то вы могли бы сделать

{ 
"key1":"value1", 
"key2":{"keyA1": "valueA1", 
     "keyA2": "valueA2",... 
     } 
} 

В этом случае для обновления и получения значений вы бы просто получить key2 [keyA1] для получения значения или удалить Клавишу2 [ keyA1] для удаления.

Смежные вопросы