sql >> Database teknologi >  >> NoSQL >> MongoDB

Metaclass deligate er ikke instans

Problemet her er, at dit koncept er fuldstændig mangelfuldt. Du tildeler et kort til klassen og ikke instansen med denne linje:

User.metaClass.dynamicAttributes = [:]

For at opnå det, du søger, skal du gøre følgende:

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 
}

Jeg er sikker på, at der er en renere måde at gøre dette på, men ovenstående demonstrerer en løsning, hvor kortet instanseres pr. instans og ikke på tværs af alle instanser.



  1. Sletning af en nøgle/værdi fra eksisterende MongoDB-indgang

  2. pymongo - hvordan matcher man ved opslag?

  3. Mongo sorterer på en beregnet tilstand

  4. Sådan kontrolleres, om samlingen eksisterer eller ej MongoDB Golang