מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
זוהי מחלקת ניהול שדות של אוסף (מחלקה אבסטרקטית). הוא משמש גם כמחלקת הבסיס לכל סוגי השדות, וכל סוג שדה אחר מיושם על ידי ירושה ממחלקה זו.
למידע נוסף על התאמה אישית של שדות, עיינו ב[הרחבת סוגי שדות].
בדרך כלל, מפתחים אינם קוראים לו ישירות. הוא נקרא בעיקר דרך שיטת db.collection({ fields: [] }) כנקודת כניסה מתווכת.
בעת הרחבת שדה, היישום העיקרי מתבצע על ידי ירושה מהמחלקה האבסטרקטית Field ולאחר מכן רישום שלה למופע ה-Database.
חתימה
constructor(options: FieldOptions, context: FieldContext)פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
options | FieldOptions | - | אובייקט תצורת שדה |
options.name | string | - | שם השדה |
options.type | string | - | סוג השדה, תואם לשם סוג השדה הרשום ב-db |
context | FieldContext | - | אובייקט הקשר שדה |
context.database | Database | - | מופע מסד נתונים |
context.collection | Collection | - | מופע אוסף |
nameשם השדה.
typeסוג השדה.
dataTypeסוג אחסון השדה במסד הנתונים.
optionsפרמטרי תצורת אתחול השדה.
contextאובייקט הקשר השדה.
on()שיטת הגדרה מקוצרת המבוססת על אירועי אוסף. שקול ל-db.on(this.collection.name + '.' + eventName, listener).
בדרך כלל אין צורך לדרוס שיטה זו בעת ירושה.
חתימה
on(eventName: string, listener: (...args: any[]) => void)פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
eventName | string | - | שם האירוע |
listener | (...args: any[]) => void | - | מאזין אירועים |
off()שיטת הסרה מקוצרת המבוססת על אירועי אוסף. שקול ל-db.off(this.collection.name + '.' + eventName, listener).
בדרך כלל אין צורך לדרוס שיטה זו בעת ירושה.
חתימה
off(eventName: string, listener: (...args: any[]) => void)פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
eventName | string | - | שם האירוע |
listener | (...args: any[]) => void | - | מאזין אירועים |
bind()התוכן שיבוצע כאשר שדה מתווסף לאוסף. בדרך כלל משמש להוספת מאזיני אירועים של אוסף וטיפולים אחרים.
בעת ירושה, עליכם לקרוא תחילה לשיטת super.bind() המתאימה.
חתימה
bind()unbind()התוכן שיבוצע כאשר שדה מוסר מאוסף. בדרך כלל משמש להסרת מאזיני אירועים של אוסף וטיפולים אחרים.
בעת ירושה, עליכם לקרוא תחילה לשיטת super.unbind() המתאימה.
חתימה
unbind()get()מקבל את הערך של פריט תצורה של שדה.
חתימה
get(key: string): anyפרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
key | string | - | שם פריט התצורה |
דוגמה
merge()ממזג את הערכים של פריטי התצורה של שדה.
חתימה
merge(options: { [key: string]: any }): voidפרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
options | { [key: string]: any } | - | אובייקט פריטי התצורה למיזוג |
דוגמה
remove()מסיר את השדה מאוסף (רק מהזיכרון).
דוגמה
removeFromDb()מסיר את השדה ממסד הנתונים.
חתימה
removeFromDb(options?: Transactionable): Promise<void>פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
options.transaction? | Transaction | - | מופע טרנזקציה |
existsInDb()קובע אם השדה קיים במסד הנתונים.
חתימה
existsInDb(options?: Transactionable): Promise<boolean>פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
options.transaction? | Transaction | - | מופע טרנזקציה |
NocoBase כולל מספר סוגי שדות נפוצים מובנים, וניתן להשתמש ישירות בשם ה-type המתאים כדי לציין את הסוג בעת הגדרת שדות עבור אוסף. לסוגי שדות שונים יש תצורות פרמטרים שונות; עיינו ברשימה שלהלן לפרטים.
כל פריטי התצורה עבור סוגי השדות, למעט אלה שיוצגו בהמשך, יועברו ל-Sequelize, כך שכל פריטי תצורת השדות הנתמכים על ידי Sequelize ניתנים לשימוש כאן (כגון allowNull, defaultValue וכו').
בנוסף, סוגי השדות בצד השרת מטפלים בעיקר בבעיות אחסון נתונים ואלגוריתמים מסוימים, ואינם קשורים באופן מהותי לסוגי תצוגת השדות ולרכיבים המשמשים בקצה הקדמי. לסוגי שדות בקצה הקדמי, עיינו בהוראות המדריך המתאימות.
'boolean'סוג ערך בוליאני.
דוגמה
'integer'סוג מספר שלם (32 סיביות).
דוגמה
'bigInt'סוג מספר שלם ארוך (64 סיביות).
דוגמה
'double'סוג נקודה צפה בדיוק כפול (64 סיביות).
דוגמה
'real'סוג מספר ממשי (רלוונטי רק ל-PG).
'decimal'סוג מספר עשרוני.
'string'סוג מחרוזת. שקול לסוג VARCHAR ברוב מסדי הנתונים.
דוגמה
'text'סוג טקסט. שקול לסוג TEXT ברוב מסדי הנתונים.
דוגמה
'password'סוג סיסמה (הרחבת NocoBase). מצפין סיסמאות באמצעות שיטת scrypt מחבילת ה-crypto המובנית של Node.js.
דוגמה
פרמטרים
| שם פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
length | number | 64 | אורך תו |
randomBytesSize | number | 8 | גודל בתים אקראיים |
'date'סוג תאריך.
'time'סוג זמן.
'array'סוג מערך (רלוונטי רק ל-PG).
'json'סוג JSON.
'jsonb'סוג JSONB (רלוונטי רק ל-PG, אחרת יותאם לסוג 'json').
'uuid'סוג UUID.
'uid'סוג UID (הרחבת NocoBase). סוג מזהה מחרוזת אקראית קצרה.
'formula'סוג נוסחה (הרחבת NocoBase). מאפשר הגדרת חישובי נוסחאות מתמטיות המבוססות על mathjs. הנוסחה יכולה להתייחס לערכים מעמודות אחרות באותה רשומה לצורך החישוב.
דוגמה
'radio'סוג רדיו (הרחבת NocoBase). לכל היותר רשומה אחת באוסף כולו יכולה להכיל את הערך true בשדה זה; כל השאר יהיו false או null.
דוגמה
במערכת כולה יש רק משתמש אחד המסומן כ-root. לאחר שערך ה-root של משתמש אחר כלשהו משתנה ל-true, כל שאר הרשומות עם root שערכן true ישונו ל-false:
'sort'סוג מיון (הרחבת NocoBase). ממיין על בסיס מספרים שלמים, יוצר אוטומטית מספר סידורי חדש לרשומות חדשות, ומסדר מחדש את המספרים הסידוריים בעת העברת נתונים.
אם אוסף מגדיר את האפשרות sortable, שדה מתאים ייווצר גם הוא באופן אוטומטי.
דוגמה
פוסטים ניתנים למיון על בסיס המשתמש שאליו הם שייכים:
'virtual'סוג וירטואלי. אינו מאחסן נתונים בפועל, ומשמש רק להגדרות getter/setter מיוחדות.
'belongsTo'סוג קשר רבים-לאחד. מפתח החוץ מאוחסן באוסף עצמו, בניגוד ל-hasOne/hasMany.
דוגמה
כל פוסט שייך למחבר מסוים:
'hasOne'סוג קשר אחד-לאחד. מפתח החוץ מאוחסן באוסף המקושר, בניגוד ל-belongsTo.
דוגמה
לכל משתמש יש פרופיל אישי:
'hasMany'סוג קשר אחד-לרבים. מפתח החוץ מאוחסן באוסף המקושר, בניגוד ל-belongsTo.
דוגמה
כל משתמש יכול להחזיק במספר פוסטים:
'belongsToMany'סוג קשר רבים-לרבים. משתמש באוסף מתווך לאחסון מפתחות החוץ של שני הצדדים. אם לא מצוין אוסף קיים כאוסף מתווך, אוסף מתווך ייווצר אוטומטית.
דוגמה
כל פוסט יכול להכיל מספר תגיות, וכל תגית יכולה להיות משויכת למספר פוסטים: