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

Metode 'statis' luwak vs. metode 'contoh'

statics adalah metode yang didefinisikan pada Model. methods didefinisikan pada dokumen (instance).

Anda dapat menggunakan statis metode seperti Animal.findByName :

const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }

Dan Anda dapat menggunakan contoh metode seperti fido.findSimilarTypes :

const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]

Tapi Anda tidak akan melakukan Animals.findSimilarTypes() karena Hewan adalah model, ia tidak memiliki "tipe". findSimilarTypes membutuhkan this.type yang tidak akan ada dalam model Hewan, hanya contoh dokumen yang akan berisi properti itu, seperti yang didefinisikan dalam model.

Demikian pula Anda tidak akan¹ melakukan fido.findByName karena findByName perlu menelusuri semua dokumen dan fido hanya a dokumen.

Yah, secara teknis Anda bisa , karena instance memang memiliki akses ke koleksi (this.constructor atau this.model('Animal') ) tetapi tidak masuk akal (setidaknya dalam kasus ini) untuk memiliki metode instance yang tidak menggunakan properti apa pun dari instance. (terima kasih kepada @AaronDufour karena telah menunjukkan hal ini)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menganalisis penggunaan disk dari wadah Docker

  2. Kembalikan hasil sebagai Array Nilai Saja

  3. Bagaimana MongoDb diinstal oleh Meteor?

  4. $project:Apakah mungkin untuk mengakses properti dari hasil ekspresi hanya dalam satu tahap?

  5. Bagaimana cara mengakses koleksi yang sudah ada sebelumnya dengan Mongoose?