2016-07-19 3 views
1

Скажем, у меня есть коллекция под названием UserInfo содержит:коллекции отношения в MongoDB (Node.js)

userName: "John Doe" userID: "100"

Я также коллекция Позвонили Friends содержит :

userID: "100" friendID: "200"

Каждый пользователь может иметь несколько Frie НСР. Таким образом, я пытаюсь добавить еще:

userID: "100" friendID: "300"

и так далее.

Это правильный способ сделать это? Мне нужна возможность добавлять и удалять друзей от пользователя.

Другой подход, который я могу думать UserInfo:

userName: "John Doe" userID: "100" friends: "200, 300, 400" // и т.д..

Или другие решения?

ответ

1

Ну, есть целый раздел в mongoDB docs, рассказывающий о плюсах и минусах вложения документов и ссылки на них в отдельной коллекции.
Это действительно зависит от сценария и требований (короче говоря, встроенные документы допускают атомные операции и, как правило, некоторые улучшения производительности, но могут привести к дублированию).

В вашем конкретном случае я, скорее всего, поеду со встроенным массивом идентификаторов друзей (ваш последний показанный вариант) и не буду использовать отдельную коллекцию Friends, сохраняя идентификаторы друга, в противном случае дублируя данные.

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