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

Delegasi metaclass tidak menjadi instance

Masalahnya di sini adalah bahwa konsep Anda benar-benar cacat. Anda menetapkan peta ke Kelas dan bukan instance dengan baris ini:

User.metaClass.dynamicAttributes = [:]

Untuk mencapai apa yang ingin Anda lakukan, Anda perlu melakukan hal berikut:

User.metaClass.propertyMissing = { String name ->
  if (!delegate.dynamicAttributes) delegate.dynamicAttributes = [:]
  delegate.dynamicAttributes[name] 
}  
User.metaClass.propertyMissing = { String name, value ->     
  if (!delegate.dynamicAttributes) delegate.dynamicAttributes = [:]
  delegate.dynamicAttributes[name] = value 
}

Saya yakin ada cara yang lebih bersih untuk melakukan ini, tetapi cara di atas menunjukkan solusi di mana peta di-instance per instance dan tidak di semua instance.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sisipan batch luwak (mongodb)?

  2. Bagaimana cara memfilter array sub-dokumen?

  3. Bagaimana cara menguji indeks Mongo dalam tes integrasi?

  4. DynamoDB vs MongoDB NoSQL

  5. MongoEngine - Pengguna lain sudah diautentikasi ke database ini. Anda harus logout terlebih dahulu