MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

kelas dan antarmuka untuk menulis Model dan skema Mongoose yang diketik di TypeScript menggunakan pasti diketik

Begini cara saya melakukannya:

  1. Tentukan TypeScript kelas yang akan menentukan logika kita.
  2. Tentukan antarmuka (yang saya beri nama Document):itu jenis mongoose akan berinteraksi dengan
  3. Tentukan modelnya (kita akan dapat menemukan, menyisipkan, memperbarui...)

Dalam kode:

import { Document, Schema, model } from 'mongoose'

// 1) CLASS
export class User {
  name: string
  mail: string

  constructor(data: {
    mail: string
    name: string
  }) {
    this.mail = data.mail
    this.name = data.name
  }
  
  /* any method would be defined here*/
  foo(): string {
     return this.name.toUpperCase() // whatever
  }
}

// no necessary to export the schema (keep it private to the module)
var schema = new Schema({
  mail: { required: true, type: String },
  name: { required: false, type: String }
})
// register each method at schema
schema.method('foo', User.prototype.foo)

// 2) Document
export interface UserDocument extends User, Document { }

// 3) MODEL
export const Users = model<UserDocument>('User', schema)

Bagaimana saya akan menggunakan ini? mari kita bayangkan kode itu disimpan di user.ts , sekarang Anda dapat melakukan hal berikut:

import { User, UserDocument, Users } from 'user'

let myUser = new User({ name: 'a', mail: '[email protected]' })
Users.create(myUser, (err: any, doc: UserDocument) => {
   if (err) { ... }
   console.log(doc._id) // id at DB
   console.log(doc.name) // a
   doc.foo() // works :)
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Membuat kueri subbidang di documentdb

  2. Menghapus elemen dari array di mongodb

  3. Pembacaan DBname.system.indexes gagal pada cluster Atlas oleh mongobee setelah terhubung

  4. bagaimana menemukan bidang model yang berbeda pada kondisi dan pada luwak?

  5. Cara menyemai wadah buruh pelabuhan di Windows