MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

संदेश माता-पिता के अंदर संदेश उत्तर एम्बेड करना mongodb का उपयोग करके mongodb के साथ

यह सर्वोत्तम अभ्यास है या नहीं यह एक अत्यधिक बहस का विषय है। उदाहरण के लिए, आपको वस्तु आकार सीमा (वर्तमान में 4 एमबी, लेकिन जल्द ही बढ़ जाएगी) पर ध्यान देना होगा।

आपके प्रश्न के लिए:मेरा सुझाव है कि आप बदल दें

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

करने के लिए

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

और आपको दोनों कनेक्शनों को मैन्युअल रूप से निर्दिष्ट करना होगा (यह कोई समस्या नहीं होनी चाहिए, क्योंकि वे शायद वैसे भी अपरिवर्तनीय हैं)।

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. नोड/एक्सप्रेस के लिए मोंगोडीबी उदाहरण से AJAX कॉल/से?

  2. एक JSON फ़ाइल में MongoDB संग्रह निर्यात करें

  3. रोबोमोंगो को मोंगोडीबी से कैसे कनेक्ट करें

  4. हर पांच मिनट में Node.js जॉब शेड्यूल करें

  5. Mongoid::Versioning - पिछले संस्करणों की जांच कैसे करें?