Aşağıdaki tablolarda, Cloud Firestore için desteklenen MongoDB veri türleri, sürücüleri ve üçüncü taraf araçları listelenmiştir.
Veri türleri
| BSON Türü | Destekleniyor |
|---|---|
| 32 bit tam sayı | Evet |
| 64 bit tam sayı | Evet |
| Dizi | Evet |
| İkili Veri | Evet |
| Boole | Evet |
| Tarih | Evet |
| DBPointer | Hayır |
| Decimal128 | Evet |
| Çift | Evet |
| JavaScript | Hayır |
| JavaScript (kapsamlı) | Hayır |
| MaxKey | Evet |
| MinKey | Evet |
| Boş | Evet |
| Nesne | Evet |
| ObjectId | Evet |
| Normal İfade | Evet |
| Dize | Evet |
| Sembol | Hayır |
| Zaman damgası | Evet |
| Tanımlanmadı | Hayır |
_id dokümanı
Bir dokümandaki üst düzey _id alanı aşağıdaki türlerden biri olmalıdır:
- ObjectId
- Dize
- 64 bit tam sayı
- 32 bit tam sayı
- Çift
- İkili
- Nesne
- Boole
_id toplam boyutu 1.500 baytı aşmamalıdır.
Nesne türündeki bir kimlikteki her değer de desteklenen bir kimlik türünde veya her biri desteklenen bir kimlik türünde olan bir değer dizisi olmalıdır.
Diğer BSON türleri desteklenmez.
Diller ve MongoDB sürücüleri
Cloud Firestore aşağıdaki sürücü sürümlerini destekler:
| Dil | Sürücü sürümleri |
|---|---|
| Java | 5.x |
| Node.js | 6.x 5.x |
| Python | 4.x 3.x (x ≥ 12) |
| Go | 2.x |
| C# | 3.x |
| Ruby | 2.x (x ≥ 16) |
OIDC kimlik doğrulama desteği
Go, C# ve Ruby sürücüleri, desteklenen tüm sürücü sürümleri için Google Cloud üzerinden OpenID Connect (OIDC) kimlik doğrulamasını destekler.
Java, Node.js ve Python sürücüleri, aşağıdaki sürücü sürümlerinden itibaren Google Cloud üzerinden OIDC kimlik doğrulamasını destekler:
- Java: 4.10
- Node.js: 6.7
- Python: 4,7
Üçüncü taraf araçlar
Cloud Firestore, bu bölümde açıklanan üçüncü taraf araçlarını destekler.
| Araç | Açıklama | Notlar |
|---|---|---|
| mongoimport | MongoDB Veritabanı Araçları | Toplu veri yükleme bölümüne bakın. |
| mongoexport | MongoDB Veritabanı Araçları | |
| mongodump | MongoDB Veritabanı Araçları | |
| mongorestore | MongoDB Veritabanı Araçları | Toplu veri yükleme bölümüne bakın. |
| mongosh | MongoDB Shell | |
| Mongoose | MongoDB nesne modelleme aracı | |
| MongoDB Compass | Veri keşfi için GUI aracı |
BSON ve Cloud Firestore türü uyumluluğu
Bu bölümde, MongoDB BSON türleri ile Cloud Firestore değerleri arasındaki eşleme özetlenmektedir. BSON ikili biçim olduğundan ve Cloud Firestore API'si protokol arabellekleri kullandığından bazı türler doğrudan eşlenirken diğerleri için özel eşleme temsilleri gerekir.
Eşlemeye genel bakış
Aşağıdaki tablolarda, BSON veri türlerinin Cloud Firestore protokol arabelleği temsillerine nasıl karşılık geldiği gösterilmektedir.
Doğrudan eşlemeler
Bu türlerin her iki sistemde de doğrudan bir karşılığı vardır.
| BSON Türü | BSON | Cloud Firestore Proto | Notlar |
|---|---|---|---|
| Double | 1.23 |
double_value: 1.23 |
|
| String | "hello" |
string_value: "hello" |
|
| Nesne | { |
map_value { |
|
| Dizi | [ |
array_value { |
|
| İkili (Alt Tür Sıfır) | BinData(0, 'SGVsbG8=') |
bytes_value: "Hello" |
|
| Boole | true |
boolean_value: true |
|
| Null | null |
null_value: NULL_VALUE |
|
| 64 bit tam sayı | Long('1234567890') |
integer_value: 1234567890 |
|
| Tarih | ISODate('2026-05-22T04:00:00Z') |
timestamp_value { |
Cloud Firestore zaman damgası değerleri mikrosaniye hassasiyetinde depolanır ancak BSON'a dönüştürülürken milisaniye hassasiyetinin ötesindeki her şey kaybolur. |
Cloud Firestore API'de eşleme olarak temsil edilen BSON türleri
Bu BSON türleri, türü belirtmek için özel anahtarlarla Cloud Firestore map_value içine sarmalanır.
| BSON Türü | BSON | Cloud Firestore Proto | Notlar |
|---|---|---|---|
| 32 bit tam sayı | 123 |
map_value { |
|
| İkili (Sıfır Olmayan Alt Tür) | BinData(1, 'AQIDBA==') |
map_value { |
Verilerin başına alt tür baytı eklenir. |
| ObjectId | ObjectId('67eea9446dc71ec469e9496a') |
map_value { |
Küçük harfli onaltılık dize. |
| Zaman damgası (dahili) | Timestamp(123, 1) |
map_value { |
MongoDB dahili zaman damgası. |
| Normal İfade | RegExp('.*', 'im') |
map_value { |
|
| Min Key | MinKey() |
map_value { |
|
| Maksimum Anahtar | MaxKey() |
map_value { |
|
| Decimal128 | Decimal128('4E7') |
map_value { |
Cloud Firestore türleri yerel olarak BSON'da değil
Bu Cloud Firestore türleri, BSON'a dönüştürüldüğünde özel olarak yapılandırılmış haritalar olarak temsil edilir.
| Cloud Firestore Türü | BSON | Cloud Firestore Proto |
|---|---|---|
| GeoPoint | { |
geo_point_value { |
| Vektör | { |
map_value { |
| Belge Ref | { |
reference_value: "projects/.../documents/col/doc" |
Alan adları
MongoDB'deki __.*__ ile eşleşen alan adları, Cloud Firestore içinde depolanırken r: eklenerek kodlanır. Örneğin, bir BSON alanı __foo__, Cloud Firestore içinde __r:foo__ olur.
İstemci SDK'larındaki BSON veri türleri
Cloud Firestore istemci SDK'larını kullanırken 128 bit ondalık sayılar, normal ifadeler ve BSON zaman damgaları gibi BSON veri türlerini temsil etmek için özel SDK sınıflarını kullanabilirsiniz.
Node.js
const { RegexValue, Decimal128Value, BsonTimestamp } = require('@google-cloud/firestore'); // Setting fields with BSON data types const res = await db.collection('foo').doc('bar').set({ regex: new RegexValue('myRegexPattern', 'i'), decimal: new Decimal128Value('0.73e-7'), bsonTimestamp: new BsonTimestamp(1732754912, 500), });
Java
import com.google.cloud.firestore.BsonTimestamp; import com.google.cloud.firestore.Decimal128Value; import com.google.cloud.firestore.RegexValue; import java.util.HashMap; import java.util.Map; Map<String, Object> data = new HashMap<>(); data.put("regex", new RegexValue("myRegexPattern", "i")); data.put("decimal", new Decimal128Value("0.73e-7")); data.put("bson_timestamp", new BsonTimestamp(1732754912, 500)); db.collection("foo").doc("bar").set(data);
Java
import com.google.firebase.firestore.BsonTimestamp; import com.google.firebase.firestore.Decimal128Value; import com.google.firebase.firestore.RegexValue; import java.util.HashMap; import java.util.Map; Map<String, Object> data = new HashMap<>(); data.put("regex", new RegexValue("myRegexPattern", "i")); data.put("decimal", new Decimal128Value("0.73e-7")); data.put("bson_timestamp", new BsonTimestamp(1732754912, 500)); db.collection("foo").doc("bar").set(data);
Go
import ( "context" "cloud.google.com/go/firestore" ) func writeBsonTypes(ctx context.Context, client *firestore.Client) error { _, err := client.Collection("foo").Doc("bar").Set(ctx, map[string]interface{}{ "regex": firestore.RegexValue{Pattern: "myRegexPattern", Options: "i"}, "decimal": firestore.Decimal128Value{Value: "0.73e-7"}, "bson_timestamp": firestore.BsonTimestamp{Seconds: 1732754912, Increment: 500}, }) return err }
Sırada ne var?
- Hızlı başlangıç: Veritabanı oluşturma ve veritabanına bağlanma başlıklı makaledeki adımları uygulayın.
- Davranış farklılıkları hakkında bilgi edinin.
- MongoDB sürümüne göre desteklenen özelliklerin dökümü için