MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Osadzanie odpowiedzi na wiadomości wewnątrz rodzica wiadomości za pomocą mongodb przy użyciu mongoid

To, czy jest to najlepsza praktyka, czy nie, jest tematem wysoce dyskusyjnym. Na przykład musisz pamiętać o limicie rozmiaru obiektu (obecnie 4 MB, ale wkrótce wzrośnie).

jak na twoje pytanie:proponuję zmienić

  embeds_many :replies, :class_name => 'Message'
  embedded_in :message, :inverse_of => :replies

do

  embeds_many :replies, :class_name => 'Message'
  referenced_in :message

Będziesz także musiał określić oba połączenia ręcznie (to nie powinno stanowić problemu, ponieważ prawdopodobnie i tak są niezmienne).

irb(main):002:0> msg1 = Message.new :subject => 'new question'
=> #<Message _id: 4cc7699f457601d7e8000001, created_at: nil, body: nil, updated_at: nil, subject: "new question", read_at: nil, sender_deleted: false, message_id: nil, recipient_deleted: false>
irb(main):003:0> msg2 = Message.new :subject => 'first comment'
=> #<Message _id: 4cc769b6457601d7e8000002, created_at: nil, body: nil, updated_at: nil, subject: "first comment", read_at: nil, sender_deleted: false, message_id: nil, recipient_deleted: false>
irb(main):005:0> msg2.message = msg1
=> #<Message _id: 4cc7699f457601d7e8000001, created_at: nil, body: nil, updated_at: nil, subject: "new question", read_at: nil, sender_deleted: false, message_id: nil, recipient_deleted: false>
irb(main):007:0> msg1.replies << msg2
=> [#<Message _id: 4cc769b6457601d7e8000002, created_at: nil, body: nil, updated_at: nil, subject: "first comment", read_at: nil, sender_deleted: false, message_id: BSON::ObjectId('4cc7699f457601d7e8000001'), recipient_deleted: false>]
irb(main):008:0> msg1.save
=> true



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak połączyć MongoDB z PowerShellem?

  2. Jak mogę częściowo zaktualizować obiekt w MongoDB, aby nowy obiekt nałożył się / scalił z istniejącym?

  3. Uzyskiwanie wyniku SearchResponse w ElasticSearch

  4. Mongoose findOneAndUpdate Aktualizacja wielu pól

  5. Dlaczego MongoDB – 10 powodów, aby nauczyć się MongoDB na 2022 r.