جدولهای زیر انواع داده، درایورها، و ابزارهای شخص ثالث MongoDB پشتیبانیشده برای Cloud Firestore را فهرست میکند.
انواع دادهها
| نوع BSON | پشتیبانیشده |
|---|---|
| عدد صحیح ۳۲ بیتی | بله |
| عدد صحیح ۶۴ بیتی | بله |
| آرایه | بله |
| داده دودویی | بله |
| بولی | بله |
| تاریخ | بله |
| DBPointer | نه |
| Decimal128 | بله |
| دونفره | بله |
| جاوا اسکریپت | نه |
| جاوا اسکریپت (با دامنه) | نه |
| MaxKey | بله |
| MinKey | بله |
| Null | بله |
| شیء | بله |
| ObjectId | بله |
| عبارت باقاعده | بله |
| تار | بله |
| نماد | نه |
| مُهر زمان | بله |
| تعریفنشده | نه |
سند _id
فیلد _id سطح بالا در سند باید یکی از انواع زیر باشد:
- ObjectId
- تار
- عدد صحیح ۶۴ بیتی
- عدد صحیح ۳۲ بیتی
- دونفره
- دودویی
- شیء
- بولی
اندازه کل _id نباید از ۱۵۰۰ بایت بیشتر باشد.
هر مقدار در شناسه از نوع شیء باید از نوع شناسه پشتیبانیشده یا آرایهای از مقادیر باشد که هرکدام از نوع شناسه پشتیبانیشده باشند.
انواع دیگر BSON پشتیبانی نمیشوند.
زبانها و درایورهای MongoDB
Cloud Firestore از نسخههای درایور زیر پشتیبانی میکند:
| زبان | نسخههای درایور |
|---|---|
| جاوا | 5.x |
| Node.js | 6.x 5.x |
| پایتون | 4.x 3.x (x ≥ 12) |
| رفتن | ۲.x |
| سی شارپ | 3.x |
| Ruby | 2.x (x ≥ 16) |
پشتیبانی از اصالتسنجی OIDC
درایورهای Go، C#، و Ruby از اصالتسنجی OpenID Connect (OIDC) از Google Cloud برای همه نسخههای درایور پشتیبانیشده پشتیبانی میکنند.
درایورهای Java، Node.js، و Python از اصالتسنجی OIDC از Google Cloud با شروع از نسخههای درایور زیر پشتیبانی میکنند:
- جاوا: ۴٫۱۰
- Node.js: 6.7
- پایتون: ۴٫۷
ابزار شخص ثالث
Cloud Firestore از ابزارهای شخص ثالث شرحدادهشده در این بخش پشتیبانی میکند.
| ابزار | شرح | یادداشتها |
|---|---|---|
| mongoimport | MongoDB Database Tools | بار کردن انبوه دادهها را ببینید |
| mongoexport | MongoDB Database Tools | |
| mongodump | MongoDB Database Tools | |
| mongorestore | MongoDB Database Tools | بار کردن انبوه دادهها را ببینید |
| mongosh | MongoDB Shell | |
| Mongoose | ابزار مدلسازی شیء MongoDB | |
| MongoDB Compass | ابزار میانای کاربر گرافیکی برای کاوش دادهها |
سازگاری نوع BSON و Cloud Firestore
این بخش نگاشت بین انواع MongoDB BSON و مقادیر Cloud Firestore را خلاصه میکند. ازآنجاییکه BSON یک قالب دودویی است و Cloud Firestore API از میانگیرهای پروتکل استفاده میکند، برخیاز انواع مستقیماً نگاشت میشوند، درحالیکه برخی دیگر به نمایشهای نگاشت خاصی نیاز دارند.
نمای کلی تخصیص
جدولهای زیر نشان میدهند که انواع دادههای BSON چگونه با Cloud Firestore نمایشهای میانگیر پروتکل مطابقت دارند.
نگاشتهای مستقیم
این نوعها در هر دو سیستم معادل مستقیم دارند.
| نوع BSON | BSON | Cloud Firestore Proto | یادداشتها |
|---|---|---|---|
| دوبرابر | 1.23 |
double_value: 1.23 |
|
| رشته | "hello" |
string_value: "hello" |
|
| شیء | { |
map_value { |
|
| Array | [ |
array_value { |
|
| دوحالتی (زیرنوع صفر) | BinData(0, 'SGVsbG8=') |
bytes_value: "Hello" |
|
| بولی | true |
boolean_value: true |
|
| Null | null |
null_value: NULL_VALUE |
|
| عدد صحیح ۶۴ بیتی | Long('1234567890') |
integer_value: 1234567890 |
|
| تاریخ | ISODate('2026-05-22T04:00:00Z') |
timestamp_value { |
مقادیر مُهر زمان Cloud Firestore با دقت میکروثانیه ذخیره میشوند، اما هر چیزی فراتر از دقت میلیثانیه هنگام تبدیل به BSON ازبین میرود. |
انواع BSON که بهعنوان نقشه در میانای برنامهسازی کاربردی Cloud Firestore نشان داده شدهاند
این انواع BSON در Cloud Firestore map_value با کلیدهای ویژه برای نشان دادن نوع پیچیده شدهاند.
| نوع BSON | BSON | Cloud Firestore Proto | یادداشتها |
|---|---|---|---|
| عدد صحیح ۳۲ بیتی | 123 |
map_value { |
|
| دوحالتی (زیرنوع غیرصفر) | BinData(1, 'AQIDBA==') |
map_value { |
بایت زیرنوع به دادهها اضافه شد. |
| ObjectId | ObjectId('67eea9446dc71ec469e9496a') |
map_value { |
رشته hex با حروف کوچک. |
| مُهر زمان (داخلی) | Timestamp(123, 1) |
map_value { |
مُهر زمان داخلی MongoDB. |
| عبارت باقاعده | RegExp('.*', 'im') |
map_value { |
|
| Min Key | MinKey() |
map_value { |
|
| Max Key | MaxKey() |
map_value { |
|
| Decimal128 | Decimal128('4E7') |
map_value { |
Cloud Firestore نوعی که بهطور بومی در BSON نیست
این نوعهای Cloud Firestore هنگام تبدیل به BSON بهصورت نقشههایی با ساختار ویژه نمایش داده میشوند.
| نوع Cloud Firestore | BSON | Cloud Firestore Proto |
|---|---|---|
| GeoPoint | { |
geo_point_value { |
| Vector | { |
map_value { |
| مرجع سند | { |
reference_value: "projects/.../documents/col/doc" |
نام فیلدها
نام فیلدهای MongoDB که با __.*__ مطابقت دارند، هنگام ذخیره شدن در Cloud Firestore، با گنجاندن r: گریز داده میشوند. برای مثال، فیلد BSON
__foo__ در Cloud Firestore به __r:foo__ تبدیل میشود.
انواع دادههای BSON در کیتهای توسعه نرمافزار کارخواه
هنگام استفاده از کیتهای توسعه نرمافزار مشتری Cloud Firestore، میتوانید از کلاسهای تخصصی کیت توسعه نرمافزار برای نمایش انواع دادههای BSON مانند اعشار ۱۲۸ بیتی، عبارتهای باقاعده، و مُهرهای زمان BSON استفاده کنید.
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), });
جاوا
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);
رفتن
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 }
حالا چه میشود
- شروع سریع: ایجاد پایگاه داده و اتصال به آن را اجرا کنید.
- درباره تفاوتهای رفتاری بیشتر بدانید.
- برای تفکیک ویژگیهای پشتیبانیشده بسته به نسخه MongoDB، به