Differenze di comportamento
Questa pagina descrive le differenze di comportamento tra Firestore con compatibilità MongoDB e MongoDB.Per una suddivisione delle funzionalità supportate in base alla 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 Firestore con compatibilità MongoDB.
- È necessario creare un database prima di connettersi.
Denominazione
Le seguenti differenze si applicano alla denominazione delle parti del modello di dati.
Raccolte
- I nomi delle raccolte corrispondenti a
__.*__
non sono supportati.
Campi
- I nomi di campo corrispondenti a
__.*__
non sono supportati. - I nomi di campo vuoti non sono supportati.
Documenti
- La dimensione massima del documento è 4 MiB.
- La profondità massima di annidamento dei campi è 20. Ogni campo di tipo Array e Object aggiunge un livello alla profondità complessiva.
_id
- Il documento
_id
(campo di primo livello) deve essere un ObjectId, una stringa o un numero intero di 64 bit. Gli altri tipi BSON non sono supportati. - La stringa vuota ("") e 0 a 64 bit (0L) non sono supportati.
Valori
- I tipi BSON JavaScript, Symbol, DBPointer e Undefined non sono supportati.
Data
- I valori delle date devono rientrare in
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Decimal128
- I valori
NaN
, infinito positivo e infinito negativo vengono canonicizzati in fase di scrittura. - Le operazioni aritmetiche su Decimal128 non sono supportate.
Doppio
- I valori
NaN
vengono canonizzati durante la scrittura.
Espressione regolare
- Le opzioni di espressione regolare devono essere valide ("i", "m", "s", "u" o "x") e fornite in ordine alfabetico senza ripetizioni.
Query
- L'ordinamento naturale (query senza un'ordinamento esplicito) non corrisponde all'ordine di inserimento o all'ordinamento in ordine crescente per
_id
.
Aggregazioni
- Le aggregazioni sono limitate a 250 fasi.
- Le fasi
$merge
e$out
non sono supportate. Per un elenco completo delle fasi e degli operatori supportati, consulta la sezione Comandi.
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
- Le transazioni snapshot non sono supportate.
- Le transazioni utilizzano controlli di concorrenza pessimistici con blocco. Per evitare la contesa dei blocchi, limita la quantità di dati letti in una transazione.
Indici
- Gli indici con caratteri jolly non sono supportati.
- Gli indici univoci non sono supportati
- Firestore con compatibilità con MongoDB non crea automaticamente un indice su
_id
, ma garantisce che i valori di_id
siano univoci all'interno di una raccolta. - Gli indici senza multi-key abilitati non vengono modificati automaticamente in indici multi-chiave in base alle operazioni di scrittura. Devi attivare la funzionalità multi-chiave quando crei l'indice e l'opzione non può essere modificata.
Leggi preoccupazione
- È supportato solo il livello di preoccupazione per la lettura
majority
.
Scrivi un dubbio
- Sono supportati solo i problemi di scrittura
w: 'majority'
ew: 1
.
Preferenza di lettura
- Sono supportati solo i problemi di lettura
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
enearest
.
Errori
- I codici e i messaggi di errore possono variare tra Firestore con compatibilità con MongoDB e MongoDB.
Comandi
Le seguenti differenze di comportamento si applicano a comandi specifici.
- I comandi non elencati nelle seguenti tabelle non sono supportati.
maxTimeMS
è accettato dalla maggior parte dei comandi, ma può essere ignorato.
Query e scritture
Comando | Campi non supportati |
---|---|
|
|
|
|
|
|
|
|
|
All'interno di un'istruzione DELETE:
|
|
|
|
|
|
|
|
|
|
(nessuno) |
Transazioni e sessioni
Comando | Campi non supportati |
---|---|
|
|
|
|
|
(nessuno) |
Amministrazione
Comando | Campi non supportati | Note |
---|---|---|
|
|
filter deve essere vuoto se specificato. |
|
|
authorizedCollections deve essere falso se fornito. |
|
|
|
|
|
Questo comando non esegue alcuna operazione.capped deve essere falso se specificato. |
Passaggi successivi
- Esegui la guida rapida Crea un database e connettiti.
- Per un elenco completo delle funzionalità supportate, consulta Funzionalità, tipi di dati e driver MongoDB supportati.