| Относится только к версии 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 .