בטבלאות הבאות מפורטים סוגי הנתונים, מנהלי ההתקנים והכלים של צד שלישי שנתמכים ב-MongoDB ב-Cloud Firestore.
סוגי נתונים
| סוג BSON | יש תמיכה |
|---|---|
| מספר שלם של 32 ביט | כן |
| מספר שלם של 64 ביט | כן |
| מערך | כן |
| נתונים בינאריים | כן |
| בוליאני | כן |
| תאריך | כן |
| DBPointer | לא |
| Decimal128 | כן |
| זוגית | כן |
| JavaScript | לא |
| JavaScript (עם היקף) | לא |
| MaxKey | כן |
| MinKey | כן |
| Null | כן |
| אובייקט | כן |
| ObjectId | כן |
| ביטוי רגיל | כן |
| מחרוזת | כן |
| סמל | לא |
| חותמת זמן | כן |
| לא מוגדר | לא |
מסמך _id
השדה _id ברמה העליונה במסמך חייב להיות אחד מהסוגים הבאים:
- ObjectId
- מחרוזת
- מספר שלם של 64 ביט
- מספר שלם של 32 ביט
- זוגית
- בינארי
- אובייקט
- בוליאני
הגודל הכולל של _id לא יכול לחרוג מ-1,500 בייטים.
כל ערך בתוך מזהה מסוג אובייקט חייב להיות גם מסוג מזהה נתמך או מערך של ערכים, שכל אחד מהם הוא מסוג מזהה נתמך.
אין תמיכה בסוגי BSON אחרים.
שפות ודרייברים של MongoDB
Cloud Firestore תומך בגרסאות הדרייברים הבאות:
| שפה | גרסאות של מנהלי התקנים |
|---|---|
| Java | 5.x |
| Node.js | 6.x 5.x |
| Python | 4.x 3.x (x ≥ 12) |
| המשך | 2.x |
| C# | 3.x |
| Ruby | 2.x (x ≥ 16) |
תמיכה באימות OIDC
מנהלי ההתקנים של Go, C# ו-Ruby תומכים באימות OpenID Connect (OIDC) מ-Google Cloud בכל הגרסאות הנתמכות של מנהלי ההתקנים.
מנהלי ההתקנים של Java, Node.js ו-Python תומכים באימות OIDC מ-Google Cloud החל מגרסאות מנהלי ההתקנים הבאות:
- Java: 4.10
- Node.js: 6.7
- Python: 4.7
כלי צד שלישי
Cloud Firestore תומך בכלים של צד שלישי שמתוארים בקטע הזה.
| כלי | תיאור | Notes |
|---|---|---|
| mongoimport | כלי מסד הנתונים של MongoDB | טעינת נתונים בכמות גדולה |
| mongoexport | כלי מסד הנתונים של MongoDB | |
| mongodump | כלי מסד הנתונים של MongoDB | |
| mongorestore | כלי מסד הנתונים של MongoDB | טעינת נתונים בכמות גדולה |
| mongosh | MongoDB Shell | |
| Mongoose | כלי ליצירת מודלים של אובייקטים ב-MongoDB | |
| MongoDB Compass | כלי GUI לניתוח נתונים |
תאימות בין סוגי BSON ו-Cloud Firestore
בקטע הזה מפורט המיפוי בין סוגי MongoDB BSON לערכי Cloud Firestore. מכיוון ש-BSON הוא פורמט בינארי ו-API של Cloud Firestore משתמש במאגרי אחסון לפרוטוקולים, סוגים מסוימים ממופים ישירות, ואחרים דורשים ייצוגים מיוחדים של מפות.
סקירה כללית של המיפוי
בטבלאות הבאות מוצגות ההתאמות בין סוגי הנתונים של BSON לבין הייצוגים של מאגר האחסון לפרוטוקולים של Cloud Firestore.
מיפויים ישירים
לסוגים האלה יש מקבילה ישירה בשתי המערכות.
| סוג BSON | BSON | Cloud Firestore Proto | הערות |
|---|---|---|---|
| Double | 1.23 |
double_value: 1.23 |
|
| מחרוזת | "hello" |
string_value: "hello" |
|
| אובייקט | { |
map_value { |
|
| מערך | [ |
array_value { |
|
| בינארי (סוג משנה אפס) | BinData(0, 'SGVsbG8=') |
bytes_value: "Hello" |
|
| בוליאני | true |
boolean_value: true |
|
| Null | null |
null_value: NULL_VALUE |
|
| מספר שלם של 64 ביט | Long('1234567890') |
integer_value: 1234567890 |
|
| תאריך | ISODate('2026-05-22T04:00:00Z') |
timestamp_value { |
ערכי חותמות הזמן של Cloud Firestore נשמרים ברמת דיוק של מיקרו-שניות, אבל כל מה שמעבר לרמת דיוק של מילי-שניות אובד בהמרה ל-BSON. |
סוגי BSON שמיוצגים כמפות ב-API של Cloud Firestore
סוגי ה-BSON האלה מוקפים ב-Cloud Firestore map_value עם מפתחות מיוחדים שמציינים את הסוג.
| סוג BSON | BSON | Cloud Firestore Proto | הערות |
|---|---|---|---|
| מספר שלם של 32 ביט | 123 |
map_value { |
|
| בינארי (סוג משנה שאינו אפס) | BinData(1, 'AQIDBA==') |
map_value { |
בייט של סוג משנה שנוסף לפני הנתונים. |
| ObjectId | ObjectId('67eea9446dc71ec469e9496a') |
map_value { |
מחרוזת הקסדצימלית באותיות קטנות. |
| חותמת זמן (פנימי) | 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 { |
| וקטור | { |
map_value { |
| הפניה למסמך | { |
reference_value: "projects/.../documents/col/doc" |
שמות השדות
שמות שדות מ-MongoDB שתואמים ל-__.*__ עוברים תו בריחה (escape) על ידי שילוב של r: כשהם מאוחסנים ב-Cloud Firestore. לדוגמה, שדה BSON __foo__ הופך ל-__r:foo__ ב-Cloud Firestore.
סוגי נתונים של BSON בערכות SDK של לקוחות
כשמשתמשים בערכות SDK של לקוחות Cloud Firestore, אפשר להשתמש במחלקות SDK מיוחדות כדי לייצג סוגי נתונים של BSON, כמו מספרים עשרוניים של 128 ביט, ביטויים רגולריים וחותמות זמן של 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), });
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);
המשך
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.
- תכונות נתמכות: 8.0
- תכונות נתמכות: 7.0
- תכונות נתמכות: 6.0
- תכונות נתמכות: 5.0
- תכונות נתמכות: 4.0
- תכונות נתמכות: 3.6