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

indstilling af mongoide hash-feltværdier

Sagen med Hash-feltet er, at det kan være dynamisk så meget du vil. Derfor er denne funktionalitet deaktiveret som standard for at forhindre at dit DB-skema forurenes med utilsigtede felter forårsaget af fejl i din kode.

Nej, du sidder slet ikke fast ved at bruge 2-trins opdateringer til dine hashes!

[],[]=er genvejene til read_attribute() og write_attribute() og skal bruges, hvis du ikke inkluderer Mongoid::Attributes::Dynamic . Hvis du prøver at bruge $set uden at aktivere dynamiske attributter vil du få en fejlmeddelelse uden metode, fordi den ikke ser dine dynamiske attributter som definerede attributter.

Hvis du vil læse kilden til Mongoid::Attributter::Dynamisk så vil du opdage, at dette er nødvendigt for at tilføje funktionaliteten for dynamiske attributter.

Sådan opdaterer du værdierne ved at inkludere Mongoid::Attributes::Dynamic du skal følge disse trin:

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

Ellers, hvis du har brug for det, kan du nemt springe dette over og foretage værdiopdateringen ved 2-trins metode

Jeg håber, at dette kaster lys over din forespørgsel.

Kilde:

Rails-mongoide dynamiske felter - ingen metodefejl

Dynamiske attributter med Rails og Mongoid



  1. OData-tjeneste ved hjælp af NodeJS og JayData

  2. Brug af Redis med Node.js og Socket.IO

  3. $lookup indlejret array i mongodb

  4. Hvordan kan jeg slette dubletter i MongoDb?