Пн goose Схема для заметок и версий - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу создать схему в пн goose, например,

. Пользователь может создать новую заметку, указав заголовок и содержимое. Пользователь может обновить заметку, которая создаст новую версию Заметка Каждая версия заметки может запрашивать отдельно.

Я работаю с Mysql и новичком в MongoDB. Пожалуйста, предложите мне схему и как мне вставить новую заметку, обновить узел?

1 Ответ

1 голос
/ 26 апреля 2020

Справочная информация

Во-первых, я думаю, что вам стоит прочитать о базах данных на основе документов и о том, как MongoDB реализует это. Это хорошие чтения:

https://www.ibmbpnetwork.com/linux-blog/mongodb-architecture

https://medium.com/chingu/an-overview-of-mongodb-mongoose-b980858a8994

Схема

Относительно вашего вопрос, может быть много ответов на это, особенно:

как вставить новую заметку, обновить узел?

Я хотел бы иметь вашу схему user ссылка на схему note, что-то вроде этого:

var notesSchema = mongoose.Schema({
  title:       String,
  description: String,
  user:        [{ type: Schema.Types.ObjectId, ref: 'User' }],
  created_at:  { type: Date, default: Date.now },
  updated_at:  { type: Date, default: Date.now }
  ... 
  ...
});

Где ваша пользовательская схема будет определена в другом месте (я предполагаю, что вы можете сделать это?). Также может быть полезно прочитать «поддокументы» и посмотреть, подходит ли это лучше для вашей модели.

Примечание: добавьте необходимые поля, все поля являются необязательными по умолчанию, вероятно, полезно для description & title.

Я не уверен, насколько большой вы ожидаете, что ваши заметки будут, но помните

единственное ограничение - 16 МБ максимальный размер документа

Так как вы сохраните это, я дам вам решать.

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

Пн goose может легко вставлять и обновлять документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...