เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
บนออบเจกต์ Collection ที่กำหนด เราสามารถเรียกใช้ออบเจกต์ Repository ของมันได้ เพื่อดำเนินการอ่านและเขียนข้อมูลในตารางครับ/ค่ะ
บนออบเจกต์ 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() และดำเนินการสร้างอินสแตนซ์ให้สมบูรณ์ครับ/ค่ะ
ซิกเนเจอร์
constructor(collection: Collection)ตัวอย่าง
databaseอินสแตนซ์การจัดการฐานข้อมูลของบริบทที่อยู่ครับ/ค่ะ
collectionอินสแตนซ์การจัดการคอลเลกชันที่เกี่ยวข้องครับ/ค่ะ
modelคลาสโมเดลข้อมูลที่เกี่ยวข้องครับ/ค่ะ
find()สอบถามชุดข้อมูลจากฐานข้อมูล สามารถระบุเงื่อนไขการกรอง การเรียงลำดับ และอื่นๆ ได้ครับ/ค่ะ
ซิกเนเจอร์
async find(options?: FindOptions): Promise<Model[]>ประเภท
รายละเอียด
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 ครับ/ค่ะ
ซิกเนเจอร์
async findOne(options?: FindOneOptions): Promise<Model | null>ตัวอย่าง
count()สอบถามจำนวนข้อมูลทั้งหมดจากฐานข้อมูลที่ตรงตามเงื่อนไขที่กำหนด เทียบเท่ากับ Model.count() ใน Sequelize ครับ/ค่ะ
ซิกเนเจอร์
count(options?: CountOptions): Promise<number>ประเภท
ตัวอย่าง
findAndCount()สอบถามชุดข้อมูลและจำนวนผลลัพธ์ทั้งหมดจากฐานข้อมูลที่ตรงตามเงื่อนไขที่กำหนด เทียบเท่ากับ Model.findAndCountAll() ใน Sequelize ครับ/ค่ะ
ซิกเนเจอร์
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>ประเภท
รายละเอียด
พารามิเตอร์การสอบถามข้อมูลเหมือนกับเมธอด find() ครับ/ค่ะ ค่าที่ส่งกลับมาเป็นอาร์เรย์ โดยที่องค์ประกอบแรกคือผลลัพธ์การสอบถามข้อมูล และองค์ประกอบที่สองคือจำนวนผลลัพธ์ทั้งหมด
create()แทรกข้อมูลที่สร้างขึ้นใหม่หนึ่งรายการลงในตารางข้อมูล เทียบเท่ากับ Model.create() ใน Sequelize ครับ/ค่ะ เมื่อออบเจกต์ข้อมูลที่จะสร้างมีข้อมูลฟิลด์ความสัมพันธ์อยู่ด้วย ระบบจะสร้างหรืออัปเดตเรคคอร์ดข้อมูลความสัมพันธ์ที่เกี่ยวข้องไปพร้อมกัน
ซิกเนเจอร์
async create<M extends Model>(options: CreateOptions): Promise<M>ตัวอย่าง
createMany()แทรกข้อมูลที่สร้างขึ้นใหม่หลายรายการลงในตารางข้อมูล เทียบเท่ากับการเรียกใช้เมธอด create() หลายครั้งครับ/ค่ะ
ซิกเนเจอร์
createMany(options: CreateManyOptions): Promise<Model[]>ประเภท
รายละเอียด
records: อาร์เรย์ของออบเจกต์ข้อมูลสำหรับเรคคอร์ดที่จะสร้างครับ/ค่ะtransaction: ออบเจกต์ธุรกรรม หากไม่มีการส่งพารามิเตอร์ธุรกรรมเข้ามา เมธอดนี้จะสร้างธุรกรรมภายในโดยอัตโนมัติครับ/ค่ะตัวอย่าง
update()อัปเดตข้อมูลในตารางข้อมูล เทียบเท่ากับ Model.update() ใน Sequelize ครับ/ค่ะ เมื่อออบเจกต์ข้อมูลที่จะอัปเดตมีข้อมูลฟิลด์ความสัมพันธ์อยู่ด้วย ระบบจะสร้างหรืออัปเดตเรคคอร์ดข้อมูลความสัมพันธ์ที่เกี่ยวข้องไปพร้อมกัน
ซิกเนเจอร์
async update<M extends Model>(options: UpdateOptions): Promise<M>ตัวอย่าง
destroy()ลบข้อมูลในตารางข้อมูล เทียบเท่ากับ Model.destroy() ใน Sequelize ครับ/ค่ะ
ซิกเนเจอร์
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<number>ประเภท
รายละเอียด
filter: ระบุเงื่อนไขการกรองสำหรับเรคคอร์ดที่จะลบ สำหรับการใช้งาน Filter โดยละเอียด โปรดดูที่เมธอด find() ครับ/ค่ะfilterByTk: ระบุเงื่อนไขการกรองสำหรับเรคคอร์ดที่จะลบด้วย TargetKey ครับ/ค่ะtruncate: จะล้างข้อมูลในตารางหรือไม่ มีผลเมื่อไม่มีการส่งพารามิเตอร์ filter หรือ filterByTk เข้ามาครับ/ค่ะtransaction: ออบเจกต์ธุรกรรม หากไม่มีการส่งพารามิเตอร์ธุรกรรมเข้ามา เมธอดนี้จะสร้างธุรกรรมภายในโดยอัตโนมัติครับ/ค่ะ