Verhaltensunterschiede
Auf dieser Seite werden die Verhaltensunterschiede zwischen Firestore mit MongoDB-Kompatibilität und MongoDB beschrieben.Eine Aufschlüsselung der unterstützten Funktionen je nach MongoDB-Version finden Sie unter:
- Unterstützte Funktionen: 8.0
- Unterstützte Funktionen: 7.0
- Unterstützte Funktionen: 6.0
- Unterstützte Funktionen: 5.0
Verbindungen und Datenbanken
- Jede Verbindung ist auf eine einzelne Firestore-Datenbank mit MongoDB-Kompatibilität beschränkt.
- Eine Datenbank muss erstellt werden, bevor eine Verbindung zu ihr hergestellt werden kann.
Benennung
Für die Benennung von Teilen Ihres Datenmodells gelten die folgenden Unterschiede.
Sammlungen
- Sammlungsnamen, die mit
__.*__
übereinstimmen, werden nicht unterstützt.
Felder
- Feldnamen, die mit
__.*__
übereinstimmen, werden nicht unterstützt. - Leere Feldnamen werden nicht unterstützt.
Dokumente
- Die maximale Dokumentgröße beträgt 4 MiB.
- Die maximale Verschachtelungstiefe von Feldern beträgt 20. Jedes Feld vom Typ „Array“ und „Object“ erhöht die Gesamttiefe um eine Ebene.
_id
- „Document“
_id
(Feld der obersten Ebene) muss ein ObjectId-, String- oder 64-Bit-Ganzzahlwert sein. Andere BSON-Typen werden nicht unterstützt. - Leere Strings („“) und 64-Bit-0 (0L) werden nicht unterstützt.
Werte
- Die BSON-Typen „JavaScript“, „Symbol“, „DBPointer“ und „Undefined“ werden nicht unterstützt.
Datum
- Datumswerte müssen im Format
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
angegeben werden.
Decimal128
- Die Werte
NaN
, „positive infinity“ (plus unendlich) und „negative infinity“ (minus unendlich) werden beim Schreiben kanonisiert. - Arithmetische Operationen für Decimal128 werden nicht unterstützt.
Doppelt
NaN
-Werte werden beim Schreiben kanonisiert.
Regulärer Ausdruck
- Optionen für reguläre Ausdrücke müssen gültig sein („i“, „m“, „s“, „u“ oder „x“) und in alphabetischer Reihenfolge ohne Wiederholungen angegeben werden.
Abfragen
- Die natürliche Sortierreihenfolge (Abfragen ohne explizite Sortierung) entspricht nicht der Einfügereihenfolge oder der aufsteigenden Sortierung nach
_id
.
Zusammenfassungen
- Aggregationen sind auf 250 Phasen beschränkt.
- Die Phasen
$merge
und$out
werden nicht unterstützt. Eine vollständige Liste der unterstützten Phasen und Operatoren finden Sie im Abschnitt Befehle.
Schreibvorgänge
- Dokumente mit Namen, die mit einem Dollarzeichen („$“) beginnen, können nicht mit der Upsert-Funktion von
update
oderfindAndModify
erstellt werden. - Achten Sie darauf, dass in Ihrem Verbindungsstring
retryWrites=false
enthalten ist (oder verwenden Sie die für Ihren Treiber geeignete Methode), damit der Treiber nicht versucht, diese Funktion zu verwenden. Wiederholbare Schreibvorgänge werden nicht unterstützt.
Transaktionen
- Snapshot-Transaktionen werden nicht unterstützt.
- Transaktionen verwenden eine pessimistische Gleichzeitigkeitserkennung mit Sperrung. Um Sperrkonflikte zu vermeiden, sollten Sie die Datenmenge, die in einer Transaktion gelesen wird, begrenzen.
Indexe
- Platzhalterindexe werden nicht unterstützt.
- Eindeutige Indexe werden nicht unterstützt
- Bei Firestore mit MongoDB-Kompatibilität wird nicht automatisch ein Index für
_id
erstellt, aber es wird dafür gesorgt, dass die Werte von_id
innerhalb einer Sammlung eindeutig sind. - Indexe ohne aktivierte Multi-Key-Funktion werden nicht automatisch in Multi-Key-Indexe geändert, wenn Schreibvorgänge ausgeführt werden. Sie müssen die Option „Mehrere Schlüssel“ aktivieren, wenn Sie den Index erstellen. Die Option kann nicht geändert werden.
Bedenken lesen
- Es wird nur die Lesebereitschaftsstufe
majority
unterstützt.
Bedenken schreiben
- Es werden nur die Schreibvorgänge
w: 'majority'
undw: 1
unterstützt.
Lese-Einstellung
- Es werden nur die Lesebedenken
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
undnearest
unterstützt.
Fehler
- Fehlercodes und ‑meldungen können sich zwischen Firestore mit MongoDB-Kompatibilität und MongoDB unterscheiden.
Befehle
Die folgenden Verhaltensunterschiede gelten für bestimmte Befehle.
- Befehle, die nicht in den folgenden Tabellen aufgeführt sind, werden nicht unterstützt.
maxTimeMS
wird von den meisten Befehlen akzeptiert, kann aber ignoriert werden.
Abfragen und Schreibvorgänge
Befehl | Nicht unterstützte Felder |
---|---|
|
|
|
|
|
|
|
|
|
In einer DELETE-Anweisung:
|
|
|
|
|
|
|
|
|
|
(keine) |
Transaktionen und Sitzungen
Befehl | Nicht unterstützte Felder |
---|---|
|
|
|
|
|
(keine) |
Verwaltung
Befehl | Nicht unterstützte Felder | Hinweise |
---|---|---|
|
|
filter muss leer sein, wenn es angegeben wird. |
|
|
authorizedCollections muss „false“ sein, wenn es angegeben wird. |
|
|
|
|
|
Dieser Befehl hat keine Auswirkungen.capped muss „false“ sein, wenn es angegeben wird. |
Nächste Schritte
- Führen Sie die Kurzanleitung: Datenbank erstellen und eine Verbindung dazu herstellen aus.
- Eine vollständige Liste der unterstützten Funktionen finden Sie unter Unterstützte MongoDB-Datentypen, ‑Treiber und ‑Funktionen.