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

задаване на стойности на mongoid хеш полета

Нещото с полето Hash е, че то може да бъде динамично, колкото искате. Ето защо, за да предотвратите замърсяването на вашата DB схема с нежелани полета, причинени от грешки във вашия код, тази функционалност е деактивирана по подразбиране.

Не, изобщо не сте блокирани да използвате актуализации в две стъпки за вашите хешове!

[],[]=са преките пътища за read_attribute() и write_attribute() и трябва да се използва, ако не включите Mongoid::Attributes::Dynamic . Ако се опитате да използвате $set без да активирате динамични атрибути, ще получите грешка без метод, защото не вижда вашите динамични атрибути като дефинирани атрибути.

Ако прочетете източника на Mongoid::Атрибути::Динамичен тогава ще откриете, че това е необходимо за добавяне на функционалността на динамичните атрибути.

За да актуализирате стойностите, като включите Mongoid::Attributes::Dynamic трябва да изпълните следните стъпки:

thing = Thing.first
thing.set("info.endDate" => Time.now)
thing.reload # This will update the current variable 

В противен случай, ако имате нужда, можете лесно да пропуснете това и да направите актуализацията на стойността по метод в 2 стъпки

Надявам се, че това хвърля малко светлина върху вашето запитване.

Източник:

Динамични полета на Rails mongoid - няма грешка в метода

Динамични атрибути с Rails и Mongoid



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. errmsg:Не е описан хост в нова конфигурация 1 за набор от реплики rs0 карти към този възел, защо получавам това съобщение?

  2. Съхранение на пароли с Node.js и MongoDB

  3. Изключване на полета от резултат в MongoDB monk

  4. CouchDB срещу MongoDB (използване на паметта)

  5. pymongo- Как мога да имам различни стойности за поле заедно с други параметри на заявката