MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

các lớp và giao diện để viết Các mô hình và lược đồ đã nhập của Mongoose trong Typescript bằng cách sử dụng chắc chắn

Đây là cách tôi thực hiện việc này:

  1. Xác định TypeScript class điều này sẽ xác định logic của chúng ta.
  2. Xác định giao diện (mà tôi đặt tên là Tài liệu):đó là loại mongoose sẽ tương tác với
  3. Xác định mô hình (chúng tôi sẽ có thể tìm, chèn, cập nhật ...)

Trong mã:

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)

Tôi sẽ sử dụng cái này như thế nào? hãy tưởng tượng rằng mã được lưu trữ trong user.ts , bây giờ bạn có thể làm như sau:

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. Meteor:Mã thoát mongo không mong muốn 100. Đang khởi động lại. Không thể khởi động máy chủ mongo

  2. Got Access bị từ chối khi tôi cố gắng cài đặt mongodb 64-bit trong Windows server 2008

  3. Mongoid:làm thế nào để truy vấn tất cả các đối tượng có giá trị là nil?

  4. async nodejs truy vấn và xử lý kết quả

  5. trả về giải quyết lỗi trong chức năng nút