| Pertinente solo per la versione Enterprise di Cloud Firestore. |
Questa pagina descrive le differenze di comportamento tra Cloud Firestore con compatibilità MongoDB e MongoDB.
Per un elenco dettagliato delle funzionalità supportate a seconda della versione di MongoDB, consulta:
- Funzionalità supportate: 8.0
- Funzionalità supportate: 7.0
- Funzionalità supportate: 6.0
- Funzionalità supportate: 5.0
Connessioni e database
- Ogni connessione è limitata a un singolo database Cloud Firestore con compatibilità MongoDB.
- Prima di connettersi a un database, è necessario crearlo.
Denominazione
Le seguenti differenze si applicano alla denominazione delle parti del modello di dati.
Raccolte
- I nomi delle raccolte che corrispondono a
__.*__non sono supportati.
Campi
- I nomi dei campi corrispondenti a
__.*__non sono supportati. - I nomi dei campi vuoti non sono supportati.
Documenti
- La dimensione massima del documento è di 4 MiB.
- La profondità massima di annidamento dei campi è 20. Ogni campo di tipo Array e Object aggiunge un livello alla profondità complessiva.
_id
- Documento
_id(campo di primo livello) deve essere un ObjectId, una stringa o un numero intero a 64 bit. Gli altri tipi BSON non sono supportati. - La stringa vuota ("") e lo zero a 64 bit (0L) non sono supportati.
Valori
- I tipi BSON JavaScript, Symbol, DBPointer e Undefined non sono supportati.
Data
- I valori di data devono rientrare in
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z].
Decimal128
- I valori
NaN, infinito positivo e infinito negativo vengono canonicalizzati durante la scrittura. - Le operazioni aritmetiche su Decimal128 non sono supportate.
Doppio
- I valori di
NaNvengono canonizzati durante la scrittura.
Espressione regolare
- Le opzioni dell'espressione regolare devono essere valide ("i", "m", "s", "u" o "x") e fornite in ordine alfabetico senza ripetizioni.
Query
- L'ordine di ordinamento naturale (query senza un ordinamento esplicito) non corrisponde
all'ordine di inserimento o all'ordinamento per
_idin ordine crescente.
Aggregazioni
- Le aggregazioni sono limitate a 250 fasi.
- Le fasi
$mergee$outnon sono supportate. Per un elenco completo di fasi e operatori supportati, consulta la sezione Comandi. - La fase
$lookupnon supporta i campiletepipeline.
Scritture
- I documenti con nomi che iniziano con il simbolo del dollaro ("$") non possono essere
creati utilizzando la funzionalità di upsert di
updateofindAndModify. - Assicurati che la stringa di connessione
includa
retryWrites=false(o utilizza il metodo appropriato per il tuo driver) per assicurarti che il driver non tenti di utilizzare questa funzionalità. Le scritture ripetibili non sono supportate.
Transazioni
Sono supportati l'isolamento degli snapshot e le transazioni serializzabili.
Per impostazione predefinita, le transazioni utilizzano controlli della contemporaneità ottimistici con isolamento dello snapshot.
Lettura preoccupazione
Cloud Firestore con compatibilità MongoDB supporta i livelli di isolamento
snapshot,majorityelinearizable. Il valore predefinito èsnapshot, che si riferisce all'isolamento dello snapshot.Utilizza
linearizablequando l'applicazione richiede una coerenza rigorosa e deve impedire anomalie di asimmetria di scrittura. Per altri carichi di lavoro,snapshotpuò migliorare le prestazioni e ridurre la contesa delle transazioni.
Scrittura di dati sul problema
- Sono supportati solo i write concern
w: 'majority'ew: 1.
Preferenza di lettura
- Sono supportati solo i livelli di isolamento
primary,primaryPreferred,primary_preferred,secondary_preferredenearest.
Indici
- Gli indici con caratteri jolly non sono supportati.
- Cloud Firestore con compatibilità MongoDB non crea automaticamente un
indice su
_id, ma garantisce che i valori di_idsiano univoci all'interno di una raccolta. - Gli indici senza l'attivazione di più chiavi non vengono modificati automaticamente in indici con più chiavi in base alle operazioni di scrittura. Devi attivare la funzionalità multichiave quando crei l'indice e l'opzione non può essere modificata.
Errori
- I codici e i messaggi di errore potrebbero variare tra Cloud Firestore con compatibilità MongoDB e MongoDB.
Comandi
Le seguenti differenze di comportamento si applicano a comandi specifici.
- I comandi non elencati nelle tabelle seguenti non sono supportati.
maxTimeMSè accettato dalla maggior parte dei comandi, ma potrebbe essere ignorato.
Query e scritture
| Comando | Campi non supportati |
|---|---|
|
|
|
|
|
|
|
|
|
All'interno di un'istruzione di eliminazione:
|
|
|
|
|
|
|
|
|
|
(nessuno) |
Transazioni e sessioni
| Comando | Campi non supportati |
|---|---|
|
|
|
|
|
(nessuno) |
Amministrazione
| Comando | Campi non supportati | Note |
|---|---|---|
|
|
Se specificato, filter deve essere vuoto. |
|
|
Se fornito, authorizedCollections deve essere false. |
|
|
|
|
|
Questo comando è un'operazione no-op.capped deve essere false se fornito. |
Passaggi successivi
- Esegui la guida rapida: crea un database e connettiti.
- Per un elenco completo delle funzionalità supportate, vedi Tipi di dati, driver e funzionalità MongoDB supportati.