MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Поведение на проекция на Morphia например променлива със стойност по подразбиране

Когато Morphia чете вашите документи от резултатите от заявката, първото нещо, което прави, е да създаде нов екземпляр на вашия обект, Student . Той просто извиква конструктора без аргумент. Няма намесена магия. Полето град се инициализира със стойност. След като това стане, Morphia ще вземе всеки ключ в документа, върнат от базата данни, ще намери това картографирано поле и ще го зададе. Във вашия случай в документа няма градски ключ и това поле никога не се задава от Morphia, оставяйки инициализираната стойност на място.

Като цяло инициализирането на полета на обекти като това е лоша практика. За всеки обект, зареден от базата данни, JVM трябва да инициализира тези полета до някаква стойност само за да ги презапише по-късно. В случаи като вашия, когато определени полета не се връщат в резултат от заявка, тези стойности остават, след като Morphia върне новите екземпляри обратно във вашето приложение.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да свържете отдалечен mongodb с pymongo

  2. Възможно ли е да се прехвърля в MongoDB-Query?

  3. Възел вмъква големи данни с помощта на mongoose

  4. Как да броим отделни елементи от дата в поле за клеймо за време в Mongoose/NodeJS?

  5. Mongoose - Увеличете стойност в масив от обекти