Относится только к версии Cloud Firestore Enterprise. |
На этой странице описываются различия в поведении Cloud Firestore с совместимостью с MongoDB и MongoDB.
Подробную информацию о поддерживаемых функциях в зависимости от версии MongoDB см. здесь:
- Поддерживаемые функции: 8.0
- Поддерживаемые функции: 7.0
- Поддерживаемые функции: 6.0
- Поддерживаемые функции: 5.0
Подключения и базы данных
- Каждое подключение ограничено одной базой данных Cloud Firestore с совместимостью с MongoDB.
- Перед подключением к базе данных ее необходимо создать.
Нейминг
Следующие различия применимы к именованию частей вашей модели данных.
Коллекции
- Названия коллекций, соответствующие
__.*__
, не поддерживаются.
Поля
- Имена полей, соответствующие
__.*__
, не поддерживаются. - Пустые имена полей не поддерживаются.
Документы
- Максимальный размер документа — 4 МБ.
- Максимальная глубина вложенности полей — 20. Каждое поле типа «Массив» или «Объект» добавляет один уровень к общей глубине.
_id
-
_id
документа (поле верхнего уровня) должен быть ObjectId, строкой или 64-битным целым числом. Другие типы BSON не поддерживаются. - Пустая строка ("") и 64-битный 0 (0L) не поддерживаются.
Ценности
- Типы JavaScript, Symbol, DBPointer и Undefined BSON не поддерживаются.
Дата
- Значения дат должны находиться в диапазоне
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Десятичная128
- Значения
NaN
, положительная бесконечность и отрицательная бесконечность канонизируются при записи. - Арифметические операции с Decimal128 не поддерживаются.
Двойной
- Значения
NaN
канонизируются при записи.
Регулярное выражение
- Параметры регулярных выражений должны быть допустимыми («i», «m», «s», «u» или «x») и указаны в алфавитном порядке без повторений.
Запросы
- Естественный порядок сортировки (запросы без явной сортировки) не соответствует порядку вставки или порядку по возрастанию
_id
.
Агрегации
- Агрегации ограничены 250 этапами.
- Этапы
$merge
и$out
не поддерживаются. Полный список поддерживаемых этапов и операторов см. в разделе «Команды» . - Этап
$lookup
ограничен указаниемforeignField
для_id
.
Пишет
- Документы, имена которых начинаются со знака доллара («$»), нельзя создавать с помощью функции upsert функции
update
илиfindAndModify
. - Убедитесь, что строка подключения включает
retryWrites=false
(или используйте метод, соответствующий вашему драйверу), чтобы драйвер не пытался использовать эту функцию. Повторные записи не поддерживаются.
Транзакции
Поддерживается изоляция моментальных снимков и сериализуемые транзакции.
По умолчанию транзакции используют оптимистичный контроль параллелизма с изоляцией моментальных снимков.
Прочитать беспокойство
Cloud Firestore с совместимостью с MongoDB поддерживает вопросы чтения
snapshot
,majority
иlinearizable
чтения. Значение по умолчанию —snapshot
, что означает изоляцию снимка.Используйте
linearizable
, когда приложению требуется строгая согласованность и необходимо предотвратить аномалии перекосов записи. Для других рабочих нагрузокsnapshot
могут повысить производительность и снизить количество транзакций.
Написать сообщение о проблеме
- Поддерживаются только
w: 'majority'
иw: 1
записи.
Предпочтения чтения
- Поддерживаются только
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
иnearest
проблемы чтения.
Индексы
- Индексы с подстановочными знаками не поддерживаются.
- Cloud Firestore с совместимостью с MongoDB не создает автоматически индекс по
_id
, но обеспечивает уникальность значений_id
в пределах коллекции. - Индексы без включённого многоключевого режима не преобразуются автоматически в многоключевые на основе операций записи. Необходимо включить многоключевой режим при создании индекса, и этот параметр нельзя изменить.
Ошибки
- Коды ошибок и сообщения могут различаться в Cloud Firestore с совместимостью с MongoDB и MongoDB.
Команды
Следующие различия в поведении применимы к определенным командам.
- Команды, не перечисленные в следующих таблицах, не поддерживаются.
-
maxTimeMS
принимается большинством команд, но может быть проигнорирован.
Запросы и записи
Команда | Неподдерживаемые поля |
---|---|
|
|
|
|
|
|
|
|
|
В операторе удаления:
|
|
|
|
|
|
|
|
|
| (никто) |
Транзакции и сеансы
Команда | Неподдерживаемые поля |
---|---|
|
|
|
|
| (никто) |
Администрация
Команда | Неподдерживаемые поля | Примечания |
---|---|---|
|
| filter должен быть пустым, если предусмотрен. |
|
| Если указано, authorizedCollections должно быть false. |
|
| |
|
| Эта команда не является операцией. Если указано, capped должен быть false. |
Что дальше?
- Запустите Быстрый старт: создайте базу данных и подключитесь к ней .
- Полный список поддерживаемых функций см. в разделе Поддерживаемые типы данных, драйверы и функции MongoDB .