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

Backbone.js . के साथ वोटिंग सिस्टम

आपको केवल एक चीज़ बदलने के लिए पूरे मॉडल को सर्वर पर सहेजने की ज़रूरत नहीं है, आप (और इस मामले में) एक upVote जोड़ सकते हैं आपके मॉडल के लिए विधि जो आपके सर्वर पर "वृद्धि अपवोट" AJAX कॉल करती है। आपके मॉडल में आपके पास कुछ ऐसा होगा:

upVote: function() {
    var self = this;
    $.ajax({
        url: '/some/upvote/path',
        type: 'POST',
        success: function(data) {
            self.set('upVotes', data.upVotes);
        },
        // ...
    });
}

और फिर दृश्य में यह अपवोट कार्रवाई को संभालने के लिए होगा:

upVote: function() {
    // Highlight the upvote button or provide some other feedback that
    // the upvote has been seen.
    this.model.upVote();
}

और शायद आपके पास मॉडल के upVotes . पर परिवर्तन ईवेंट के लिए एक श्रोता होगा प्रदर्शित अपवोट काउंटर को ठीक से बढ़ाने के लिए संपत्ति (यदि आपके पास ऐसा कुछ है)।

इसके अलावा, आपका /some/upvote/path सर्वर पर बस एक $inc भेजेगा अपडेट करें अपने सर्वर पर एक ही "दो चीजें एक साथ हो रही" समस्या से बचने के लिए MongoDB में। यदि आप एक रिलेशनल डेटाबेस का उपयोग कर रहे थे, तो आप कुछ ऐसा करना चाहेंगे जैसे update t set upvotes = upvotes + 1 where id = ?

एक साधारण इंक्रीमेंट ऑपरेशन के लिए क्लाइंट या सर्वर पर "क्वेरी, अपडेट, सेव" राउंड ट्रिप की कोई आवश्यकता नहीं है। इसके बजाय, इंक्रीमेंट को सिंगल इंक्रीमेंट ऑपरेशन के रूप में मानें और उस इंक्रीमेंट को अपने अंतिम लगातार डेटा स्टोरेज लेयर तक धकेलें।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. com.mongodb.MongoClientSettings तक नहीं पहुंच सकता - MongoDB जावा ड्राइवर 3.7+

  2. उल्का विधि बनाम नियमों को अस्वीकार/अनुमति दें

  3. नेवला में ऑब्जेक्ट की सरणी वाले ऑब्जेक्ट को कैसे पॉप्युलेट करें?

  4. मोंगोडब एकत्रीकरण में लुकअप

  5. MongoDB संग्रह अद्यतन:डिफ़ॉल्ट मान वाले दस्तावेज़ को प्रारंभ करें