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
- Die 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 $mergeund$outwerden nicht unterstützt. Eine vollständige Liste der unterstützten Phasen und Operatoren finden Sie im Abschnitt Befehle.
- Die Felder letundpipelinewerden in der Phase$lookupnicht unterstützt.
Schreibvorgänge
- Dokumente mit Namen, die mit einem Dollarzeichen („$“) beginnen, können nicht mit der Upsert-Funktion von updateoderfindAndModifyerstellt werden.
- Achten Sie darauf, dass Ihr Verbindungsstring retryWrites=falseenthält (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-Isolation und serialisierbare Transaktionen werden unterstützt. 
- Standardmäßig verwenden Transaktionen die optimistische Nebenläufigkeitserkennung mit Snapshot-Isolation. 
Bedenken lesen
- Firestore mit MongoDB-Kompatibilität unterstützt die Read Concerns - snapshot,- majorityund- linearizable. Der Standardwert ist- snapshot, was sich auf die Snapshot-Isolation bezieht.- Verwenden Sie - linearizable, wenn die Anwendung strikte Konsistenz erfordert und Anomalien durch Schreibabweichungen verhindert werden müssen. Bei anderen Arbeitslasten kann- snapshotdie Leistung verbessern und Transaktionskonflikte reduzieren.
Bedenken schreiben
- Es werden nur die Schreibvorgänge w: 'majority'undw: 1unterstützt.
Lese-Einstellung
- Es werden nur die Lesebedenken primary,primaryPreferred,primary_preferred,secondary_preferredundnearestunterstützt.
Indexe
- Platzhalterindexe werden nicht unterstützt.
- Bei Firestore mit MongoDB-Kompatibilität wird nicht automatisch ein Index für _iderstellt, aber es wird dafür gesorgt, dass die Werte von_idinnerhalb 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.
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.
- maxTimeMSwird 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 | 
|---|---|---|
| 
 | 
 
 | filtermuss leer sein, wenn es angegeben wird. | 
| 
 | 
 | authorizedCollectionsmuss „false“ sein, wenn es angegeben wird. | 
| 
 | 
 | |
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | Dieser Befehl hat keine Auswirkungen. cappedmuss „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.