Команды Mon goose, аналогичные командам реляционной базы данных - PullRequest
0 голосов
/ 17 января 2020

Я очень запутался между схемой, моделью, экземпляром модели и коллекцией в понедельник goose.

Мое понимание таково:

  1. Пн goose .schema ({}) - аналогично определению столбцов таблицы в реляционных базах данных
  2. Пн goose .model ('Name', Schema) - аналогично созданию таблицы в реляционных БД (оператор создания таблицы)
  3. new Model ( {// DATA}) - аналогично созданию строки в реляционных базах данных
  4. new Model () .query () - аналогично операторам запросов (общий запрос) в реляционных базах данных

Это правильно?

1 Ответ

1 голос
/ 18 января 2020

Вы в основном правы.

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

Еще одно замечание: этот синтаксис, на который вы ссылаетесь, конкретно mongoose, а не оригинальный синтаксис Mongo.

  1. Mongoose.schema( { } ) Да, понедельник goose дает вам возможность «форсировать» структуру, обратите внимание, что это вступит в действие только при попытке insert / create / update документов, а не когда дело доходит до запросов.

  2. Mongoose.model('Name', Schema) Да-я sh, пн goose не будет создавать базу данных как таковую, то есть если она не существует новой будет создан, однако вставка документа в эту модель создаст такую ​​коллекцию.

  3. new Model ({ //DATA }) Да, однако вам нужно добавить new Model().save(), без сохранения он не будет запущен и сохранен в базе данных.

  4. new Model ().query() Да-я sh, снова аналогично функции model, это оболочка mon goose (что я менее знакомы с) Как указано в docs :

Конструктор запросов, используемый для сборки ING запросов. Вам не нужно создавать экземпляр запроса напрямую. Вместо этого используйте функции модели, такие как Model.find ().

Лично я просто использую функции модели для запроса, такие как find, findOne, aggregate и другие.

...