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 in scrittura. - Le operazioni aritmetiche su Decimal128 non sono supportate.
Doppio
- I valori
NaN
vengono 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
_id
in ordine crescente.
Aggregazioni
- Le aggregazioni sono limitate a 250 fasi.
- Le fasi
$merge
e$out
non sono supportate. Per un elenco completo di fasi e operatori supportati, consulta la sezione Comandi. - La fase
$lookup
è limitata alla specifica di unforeignField
su_id
.
Scritture
- I documenti con nomi che iniziano con il simbolo del dollaro ("$") non possono essere
creati utilizzando la funzionalità di upsert di
update
ofindAndModify
. - 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.
Leggi il problema
Cloud Firestore con compatibilità MongoDB supporta i livelli di isolamento
snapshot
,majority
elinearizable
. Il valore predefinito èsnapshot
, che si riferisce all'isolamento dello snapshot.Utilizza
linearizable
quando l'applicazione richiede una coerenza rigorosa e deve impedire anomalie di asimmetria di scrittura. Per altri carichi di lavoro,snapshot
può migliorare le prestazioni e ridurre la contesa delle transazioni.
Scrittura di un 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_preferred
enearest
.
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_id
siano unici 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 possono 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.