| Относится только к версии 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не поддерживает поляletиpipeline.
Пишет
- Документы, имена которых начинаются со знака доллара («$»), нельзя создавать с помощью функции 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 .