تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
على كائن Collection معين، يمكنك الحصول على كائن Repository الخاص به لإجراء عمليات القراءة والكتابة على المجموعة (Collection).
على كائن Repository، يمكنك استدعاء الطرق المتعلقة بـ find* لإجراء عمليات الاستعلام. تدعم جميع طرق الاستعلام تمرير المعامل filter لتصفية البيانات.
يوفر المعامل filter في Repository أيضًا مجموعة متنوعة من عوامل التشغيل لإجراء عمليات استعلام أكثر تنوعًا.
لمزيد من التفاصيل حول عوامل التشغيل، يرجى الرجوع إلى عوامل تصفية البيانات (Filter Operators).
عند إجراء عملية استعلام، يمكنك التحكم في الحقول الناتجة من خلال المعاملات fields و except و appends.
fields: لتحديد الحقول المراد إخراجهاexcept: لاستبعاد الحقول من الإخراجappends: لإضافة الحقول المرتبطة إلى الإخراجيدعم المعامل filter التصفية حسب الحقول المرتبطة، على سبيل المثال:
يمكن أيضًا تداخل الحقول المرتبطة.
يمكنك فرز نتائج الاستعلام باستخدام المعامل sort.
يمكنك أيضًا الفرز حسب حقول الكائنات المرتبطة.
أنشئ كائنات بيانات جديدة من خلال Repository.
عند الإنشاء، يمكنك أيضًا إنشاء كائنات مرتبطة في نفس الوقت. على غرار الاستعلام، يدعم هذا أيضًا الاستخدام المتداخل للكائنات المرتبطة، على سبيل المثال:
إذا كان الكائن المرتبط موجودًا بالفعل في قاعدة البيانات، يمكنك تمرير معرفه (ID) لإنشاء ارتباط به أثناء عملية الإنشاء.
بعد الحصول على كائن بيانات، يمكنك تعديل خصائصه مباشرة على كائن البيانات (Model) ثم استدعاء طريقة save لحفظ التغييرات.
يرث كائن البيانات Model من Sequelize Model. لعمليات على Model، يرجى الرجوع إلى Sequelize Model.
يمكنك أيضًا تحديث البيانات من خلال Repository:
عند التحديث، يمكنك التحكم في الحقول التي يتم تحديثها باستخدام المعاملين whitelist و blacklist، على سبيل المثال:
عند التحديث، يمكنك تعيين الكائنات المرتبطة، على سبيل المثال:
يمكنك استدعاء طريقة destroy() في Repository لإجراء عملية حذف. عند الحذف، يجب تحديد معايير التصفية:
لا يتم استدعاؤها عادةً مباشرة من قبل المطورين. يتم إنشاؤها بشكل أساسي بعد تسجيل النوع عبر db.registerRepositories() وتحديد نوع المستودع المسجل المقابل في معاملات db.collection()، ثم إتمام عملية الإنشاء.
التوقيع (Signature)
constructor(collection: Collection)مثال
databaseكائن إدارة قاعدة البيانات الخاص بالسياق.
collectionكائن إدارة المجموعة (Collection) المقابل.
modelفئة النموذج (Model) المقابلة.
find()تستعلم عن مجموعة بيانات من قاعدة البيانات، ويمكنها تحديد شروط التصفية والفرز وغيرها.
التوقيع (Signature)
async find(options?: FindOptions): Promise<Model[]>النوع (Type)
التفاصيل
filter: Filterشرط الاستعلام، يستخدم لتصفية نتائج البيانات. في معاملات الاستعلام الممررة، key هو اسم الحقل المراد الاستعلام عنه، و value يمكن أن يكون القيمة المراد الاستعلام عنها، أو يمكن استخدامه مع عوامل التشغيل لتصفية البيانات بشروط أخرى.
لمزيد من عوامل التشغيل، يرجى الرجوع إلى عوامل تشغيل الاستعلام.
filterByTk: TargetKeyتستعلم عن البيانات بواسطة TargetKey، وهي طريقة ملائمة لمعامل filter. يمكن تكوين الحقل المحدد لـ TargetKey في Collection، والقيمة الافتراضية هي primaryKey.
fields: string[]أعمدة الاستعلام، تستخدم للتحكم في نتائج حقول البيانات. بعد تمرير هذا المعامل، سيتم إرجاع الحقول المحددة فقط.
except: string[]أعمدة الاستبعاد، تستخدم للتحكم في نتائج حقول البيانات. بعد تمرير هذا المعامل، لن يتم إخراج الحقول الممررة.
appends: string[]أعمدة الإلحاق، تستخدم لتحميل البيانات المرتبطة. بعد تمرير هذا المعامل، سيتم إخراج الحقول المرتبطة المحددة أيضًا.
sort: string[] | stringتحدد طريقة فرز نتائج الاستعلام. المعامل هو اسم الحقل، والذي يتم فرزه افتراضيًا بترتيب تصاعدي asc. للفرز بترتيب تنازلي desc، أضف رمز - قبل اسم الحقل، على سبيل المثال: ['-id', 'name']، مما يعني الفرز حسب id desc, name asc.
limit: numberيحدد عدد النتائج، وهو مماثل لـ limit في SQL.
offset: numberإزاحة الاستعلام، وهي مماثلة لـ offset في SQL.
مثال
findOne()تستعلم عن سجل بيانات واحد من قاعدة البيانات يطابق شروطًا محددة. يعادل Model.findOne() في Sequelize.
التوقيع (Signature)
async findOne(options?: FindOneOptions): Promise<Model | null>مثال
count()تستعلم عن العدد الإجمالي لسجلات البيانات التي تطابق شروطًا محددة من قاعدة البيانات. يعادل Model.count() في Sequelize.
التوقيع (Signature)
count(options?: CountOptions): Promise<number>النوع (Type)
مثال
findAndCount()تستعلم عن مجموعة بيانات والعدد الإجمالي للنتائج التي تطابق شروطًا محددة من قاعدة البيانات. يعادل Model.findAndCountAll() في Sequelize.
التوقيع (Signature)
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>النوع (Type)
التفاصيل
معاملات الاستعلام هي نفسها المستخدمة في find(). القيمة المعادة هي مصفوفة، العنصر الأول فيها هو نتيجة الاستعلام، والعنصر الثاني هو العدد الإجمالي للنتائج.
create()تُدرج سجل بيانات جديدًا في المجموعة (Collection). يعادل Model.create() في Sequelize. عندما يحمل كائن البيانات المراد إنشاؤه معلومات عن حقول العلاقات، سيتم إنشاء أو تحديث سجلات بيانات العلاقة المقابلة أيضًا.
التوقيع (Signature)
async create<M extends Model>(options: CreateOptions): Promise<M>مثال
createMany()تُدرج عدة سجلات بيانات جديدة في المجموعة (Collection). يعادل استدعاء طريقة create() عدة مرات.
التوقيع (Signature)
createMany(options: CreateManyOptions): Promise<Model[]>النوع (Type)
التفاصيل
records: مصفوفة من كائنات البيانات للسجلات المراد إنشاؤها.transaction: كائن المعاملة (transaction). إذا لم يتم تمرير معامل معاملة، فستقوم هذه الطريقة تلقائيًا بإنشاء معاملة داخلية.مثال
update()تُحدّث البيانات في المجموعة (Collection). يعادل Model.update() في Sequelize. عندما يحمل كائن البيانات المراد تحديثه معلومات عن حقول العلاقات، سيتم إنشاء أو تحديث سجلات بيانات العلاقة المقابلة أيضًا.
التوقيع (Signature)
async update<M extends Model>(options: UpdateOptions): Promise<M>مثال
destroy()تحذف البيانات من المجموعة (Collection). يعادل Model.destroy() في Sequelize.
التوقيع (Signature)
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<number>النوع (Type)
التفاصيل
filter: يحدد شروط التصفية للسجلات المراد حذفها. للاستخدام المفصل لـ Filter، يرجى الرجوع إلى طريقة find().filterByTk: يحدد شروط التصفية للسجلات المراد حذفها بواسطة TargetKey.truncate: ما إذا كان سيتم تفريغ بيانات المجموعة (Collection)، ويكون فعالاً عند عدم تمرير المعامل filter أو filterByTk.transaction: كائن المعاملة (transaction). إذا لم يتم تمرير معامل معاملة، فستقوم هذه الطريقة تلقائيًا بإنشاء معاملة داخلية.