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 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 un foreignField 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 o findAndModify.
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, majority e linearizable. 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' e w: 1.
Preferenza di lettura
Sono supportati solo i livelli di isolamento primary, primaryPreferred, primary_preferred,
secondary_preferred e nearest.
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 _id siano 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
find
comment
readConcern
max
min
returnKey
showRecordId
tailable
oplogReplay
noCursorTimeout
awaitData
allowPartialResults
collation
allowDiskUsage
let
aggregate
bypassDocumentValidation
readConcern
collation
hint
comment
let
insert
bypassDocumentValidation
comment
update
collation
arrayFilters
hint
delete
comment
write
All'interno di un'istruzione di eliminazione:
collation
hint
findAndModify
fields
bypassDocumentValidation
collation
arrayFilters
hint
comment
let
count
hint
readConcern
collation
comment
distinct
readConcern
collation
comment
hint
getMore
comment
killCursors
(nessuno)
Transazioni e sessioni
Comando
Campi non supportati
commitTransaction
comment
abortTransaction
comment
endSessions
(nessuno)
Amministrazione
Comando
Campi non supportati
Note
listDatabases
authorizedDatabases
comment
Se specificato, filter deve essere vuoto.
listCollections
comment
Se fornito, authorizedCollections deve essere false.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[],[],null,["# Behavior differences\n====================\n\nThis page describes behavioral differences between Firestore with MongoDB compatibility and MongoDB.\n\nFor a breakdown of supported features depending on MongoDB version, see:\n\n- [Supported features: 8.0](/firestore/mongodb-compatibility/docs/supported-features-80)\n- [Supported features: 7.0](/firestore/mongodb-compatibility/docs/supported-features-70)\n- [Supported features: 6.0](/firestore/mongodb-compatibility/docs/supported-features-60)\n- [Supported features: 5.0](/firestore/mongodb-compatibility/docs/supported-features-50)\n\nConnections and databases\n-------------------------\n\n- Each connection is limited to a single Firestore with MongoDB compatibility database.\n- A database must be created before connecting to it.\n\nNaming\n------\n\nThe following differences apply to naming parts of your data model.\n\n### Collections\n\n- Collection names matching `__.*__` are not supported.\n\n### Fields\n\n- Field names matching `__.*__` are not supported.\n- Empty field names are not supported.\n\nDocuments\n---------\n\n- The maximum document size is 4 MiB.\n- The maximum nesting depth of fields is 20. Each Array and Object-typed field adds one level to the overall depth.\n\n### `_id`\n\n- Document `_id` (top-level field) must be an ObjectId, String, or 64-bit integer. Other BSON types are not supported.\n- Empty string (\"\") and 64-bit 0 (0L) are not supported.\n\nValues\n------\n\n- The JavaScript, Symbol, DBPointer, and Undefined BSON types are not supported.\n\n### Date\n\n- Date values must fall in `[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]`.\n\n### Decimal128\n\n- `NaN`, positive infinity, and negative infinity values are canonicalized on write.\n- Arithmetic operations on Decimal128 are not supported.\n\n### Double\n\n- `NaN` values are canonicalized on write.\n\n### Regular expression\n\n- Regular expression options must be valid (\"i\", \"m\", \"s\", \"u\", or \"x\") and provided in alphabetical order without repeats.\n\nQueries\n-------\n\n- Natural sort order (queries without an explicit sort) does not match insertion order or order by `_id` ascending.\n\nAggregations\n------------\n\n- Aggregations are limited to 250 stages.\n- The `$merge` and `$out` stages are not supported. See the [commands](#commands) section for a complete list of supported stages and operators.\n- The `$lookup` stage is limited to specifying a `foreignField` on `_id`.\n\nWrites\n------\n\n- Documents with names beginning with a dollar sign (\"$\") cannot be created using the upsert feature of `update` or `findAndModify`.\n- Make sure your connection string includes `retryWrites=false` (or use the method appropriate to your driver) to make sure the driver does not attempt to use this feature. Retryable writes are not supported.\n\nTransactions\n------------\n\n- Snapshot isolation and serializable transactions are\n supported.\n\n- By default, transactions use optimistic concurrency controls\n with snapshot isolation.\n\nRead concern\n------------\n\n- Firestore with MongoDB compatibility supports the `snapshot` , `majority`, and `linearizable`\n read concerns. The default is `snapshot` which refers to snapshot isolation.\n\n Use `linearizable` when the application requires strict consistency\n and must prevent write skew anomalies. For other workloads,\n `snapshot` can improve performance and reduce transaction contention.\n\nWrite concern\n-------------\n\n- Only `w: 'majority'` and `w: 1` write concerns are supported.\n\nRead preference\n---------------\n\n- Only the `primary`, `primaryPreferred`, `primary_preferred`, `secondary_preferred`, and `nearest` read concerns are supported.\n\nIndexes\n-------\n\n- Wildcard indexes are not supported.\n- Firestore with MongoDB compatibility does not automatically create an index on `_id`, but it ensures values of `_id` are unique within a collection.\n- Indexes without multi-key enabled are not automatically changed to [multi-key indexes](/firestore/mongodb-compatibility/docs/index-overview#multi-key_indexes_for_array_values) based on write operations. You must enable multi-key when you create the index and the option cannot be changed.\n\nErrors\n------\n\n- Error codes and messages may differ between Firestore with MongoDB compatibility and MongoDB.\n\nCommands\n--------\n\nThe following behavior differences apply to specific commands.\n\n- Commands not listed in the following tables are unsupported.\n- `maxTimeMS` is accepted by most commands but may be ignored.\n\n### Queries and writes\n\n### Transactions and sessions\n\n### Administration\n\nWhat's next\n-----------\n\n- Run the [Quickstart: Create a database and connect to it](/firestore/mongodb-compatibility/docs/create-and-query-database).\n- For a full list of supported features, see [Supported MongoDB data types, drivers, and features](/firestore/mongodb-compatibility/docs/supported-data-types-drivers)."]]