MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

निश्चित रूप से टाइप किए गए का उपयोग करके टाइपस्क्रिप्ट में नेवला के टाइप किए गए मॉडल और स्कीमा लिखने के लिए कक्षाएं और इंटरफेस

मैं इसे इस तरह से करता हूं:

  1. टाइपस्क्रिप्ट को परिभाषित करें वर्ग जो हमारे तर्क को परिभाषित करेगा।
  2. इंटरफ़ेस को परिभाषित करें (जिसे मैं दस्तावेज़ का नाम देता हूं):वह प्रकार है mongoose के साथ बातचीत करेगा
  3. मॉडल को परिभाषित करें (हम ढूंढने, डालने, अपडेट करने में सक्षम होंगे...)

कोड में:

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)

मैं इसका उपयोग कैसे करूंगा? आइए कल्पना करें कि कोड user.ts . में संग्रहीत है , अब आप निम्न कार्य करने में सक्षम होंगे:

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. MongoDB एंबेडेड ऑब्जेक्ट्स की कोई आईडी नहीं है (शून्य मान)

  2. नेवला डुप्लीकेट कुंजी त्रुटि upsert के साथ

  3. मोंगोडीबी इंसर्टऑन ()

  4. संग्रह में बड़ी संख्या में रिकॉर्ड अपडेट करना

  5. जावा स्पार्क स्पार्कसेशन को कैसे कॉन्फ़िगर करें नमूना आकार