Правильный способ хранения документов в MongoDB

У меня уже давно возник тот же вопрос о MongoDB. Поэтому я пытаюсь сохранить некоторые пользовательские данные для пользователей, которые приглашают моего бота в свою гильдию. Он хранит их на основе идентификатора гильдии и идентификатора пользователя, потому что один пользователь может находиться на нескольких серверах с одним и тем же ботом. Мне было интересно, правильно ли будет сделать один документ для каждой гильдии и добавить каждого пользователя в этот документ, или мне нужно сделать отдельный документ для каждого пользователя с ключом идентификатора гильдии и ключом идентификатора пользователя.

Например, я приложил к этому сообщению 2 фотографии, первая содержит один документ с полем «Пользователи», вложенным в объект с ключом в качестве идентификатора гильдии, используемого для запросов. Во втором представлен отдельный документ для каждого пользователя с отдельным ключом «Идентификатор пользователя» и «Идентификатор гильдии», используемым для запросов.

Один файл документа

Файл с несколькими документами

Любая помощь приветствуется. Заранее спасибо.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
0
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это идея, что вы можете сделать. Таким образом, вы можете извлекать данные и агрегировать их любым удобным для вас способом, и у вас не будет ненужной вложенности. Простой и гибкий

// Guild Schema

{
  guildId: Number,
  guildName: String,
  other: String
}

// User Schema

{
  userId: Number,
  guild: {
    type: Schema.Types.ObjectId,
    ref: "Guild"
  },
  userInfo:{
    name: String,
    address: String,
    other: String
  }
}

Большое спасибо за быстрый ответ. Выглядит в самый раз, теперь буду пользоваться этой моделью. Спасибо еще раз :))

rolandsafiyati 16.03.2022 23:42

Затем вы должны пометить этот ответ как правильный, проявите немного любви в ответ :)

ChrisDewa 17.03.2022 01:03

Извините, я новичок в stackoverflow.

rolandsafiyati 17.03.2022 02:52

Другие вопросы по теме