Differenze di comportamento
Questa pagina descrive le differenze di comportamento tra 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 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. 
Leggi il problema
- Firestore con compatibilità MongoDB supporta i livelli di isolamento - snapshot,- majoritye- linearizable. 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 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_preferredenearest.
Indici
- Gli indici con caratteri jolly non sono supportati.
- 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 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, filterdeve essere vuoto. | 
| 
 | 
 | Se fornito, authorizedCollectionsdeve essere false. | 
| 
 | 
 | |
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | Questo comando è un'operazione no-op. cappeddeve 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.