Блог 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 с точки зрения младших разработчиков, я надеюсь, что это поможет другим младшим разработчикам, которым нужно вскочить на эту блестящую технологию.
Пожалуйста, сообщите мне, если я что-то неправильно понял.
Удачного кодирования :)