Блог 3.0.0: Начало работы с Google Datastore от младшего разработчика!

Итак, это прекрасное воскресное утро, и я решил прыгнуть в хранилище данных Google, кусок пирога правильно, мы просто посмотрим пару руководств на YouTube, изучим документацию и бум, мы находимся на пути к тому, чтобы стать экспертами по хранилищам данных.

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

Я не мог даже найти достойный блог на эту тему, просто что-то, чтобы кто-то с нуля сказал «о, хорошо, я вижу, что здесь происходит», и документация мне не очень помогла, это было слишком сложно in, поэтому я решил, что сделаю быстрый блог, чтобы помочь следующему младшему разработчику, я бы сделал видео, но у меня нет оборудования для выпуска хорошего качества, так что давайте начнем здесь :)

Основы: сохранение данных

Определения, всегда хорошее место для начала, le lingo!
NB: это руководство - то, как я понимаю документацию, и я могу ужасно ошибаться, пожалуйста, поправьте меня, если я в любом случае не в порядке :) Я вернусь и обновлю это, если пойму, что был в чем-то неправ.

Сущность - сущность похожа на строку в рациональной базе данных, это один экземпляр данных, каждая сущность должна иметь ключ.
Свойства - это ключи в объекте сущности, свойства могут быть объектами с большим количеством значений сами.
Ключ - ключ похож на таблицу, ваши объекты с одинаковыми ключами будут храниться вместе. (У ваших сущностей может быть более одного ключа, что, на мой взгляд, действительно круто, это как иметь одну и ту же строку в нескольких таблицах)

«Набор объектов составляет ключ / вид» - я думаю, это помогает визуализировать его, у вас может быть ключ / вид с одним объектом / строкой, но это верно для Реляционные базы данных тоже могут иметь таблицу (ключ / вид) с одной строкой (сущностью).

const Entity = {
  key: key // property
  data: object // property
}
await datastore.save(entity);
// this will create a new entity in a table named Key

В консоли под объектами вы увидите свой ключ в раскрывающемся меню «Тип», когда вы нажмете на него, вы увидите свои данные в строке.
Если вы удалите все данные под определенным ключом (в table) этот ключ исчезнет из выпадающего списка «Kind».

Запросы

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

Запросы работают с объектами определенного типа (запросы работают с определенной таблицей, что в некотором роде имеет смысл не может просто выбросить случайный запрос, вам нужно указать ему, куда идти, посмотрите)

Фильтры - фильтры устанавливают ограничения на извлекаемые данные, они не учитывают то, что вы не хотите возвращать из базы данных.
фильтры требуют 3 вещи:
- имя свойства (свойство, к которому вы хотите применить тест. )
- Оператор сравнения (‹=›)
- Значение свойства (значение, с которым сравнивается свойство)

const query = datastore
  .createQuery('Entity')
  .filter('user_id', '>', 23);
  .filter('priority', '=', false); // you can chain them too :)

Фильтр по ключам, свойства, начинающиеся с двойного подчеркивания, являются зарезервированными ключевыми словами в хранилище данных.

const query = datastore
  .createQuery('Entity')
  .filter('__key__', '>', datastore.key(['Task', 'someTask']));

Заказ тоже прост :)

const query = datastore.createQuery('Entity').order('created');
const query = datastore.createQuery('Entity').order('created', {
  descending: true,
});

Обработка ошибок

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

так же как и все, хранилище данных возвращает коды состояния, чтобы объяснить, что произошло с запросом.
- 200 OK
- 4xx - Ошибка
- 5xx - Ошибка
Возвращенный объект будет иметь некоторые свойства, которые мы можем использовать для обработки и понимания того, какая ошибка произошла с нашим запросом.

{
  "error": {
    "code": 400,
    "message": "Key path is incomplete: [Person: null]",
    "status": "INVALID_ARGUMENT"
  }
}

Мы просто анализируем этот объект и используем операторы if для запуска различных фрагментов кода в нашем приложении.

Функции

Я вернусь и дам больше информации обо всем этом, а также о том, как они работают, параметрах и т. Д., Но сначала я хочу поэкспериментировать с ними :)

datastore.save ()
datastore.upsert ()
datastore.insert ()
datastore.get ()
datastore.update ()
datastore.delete ()
datastore.key ()
datastore.createQuery ()

Последние мысли

Это было краткое объяснение документации хранилища данных Google с точки зрения младших разработчиков, я надеюсь, что это поможет другим младшим разработчикам, которым нужно вскочить на эту блестящую технологию.

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

Удачного кодирования :)