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

MongoDB - ऑटोइनक्रिकमेंट कार्यक्षमता का उपयोग करके रिकॉर्ड कैसे सम्मिलित करें

आपको $location में _id फ़ील्ड जोड़ने की आवश्यकता है। और _id आपको id होना चाहिए। उदाहरण:

function add_playbook_history_record($location)
{
        $m = new MongoClient("mongodb://10.1.1.111:27017");
        $db = $m->testdb;
        $collection = $db->testcollection;
        $location['_id'] = getNextSequence('playhistid')
        $cursor = $collection->insert($location);
}

मेरी सिफारिश:फाइंडएंडमॉडिफाई में अप्सर्ट जोड़ें

यह आपके लिए काम करेगा:

    function getNextSequence($name)
    {
        $m = new MongoClient("mongodb://10.1.1.111:27017"); // In a real project, you do not need all the time to re-create the connection
        $db = $m->testdb;
        $collection = $db->counters;
        $result =  $collection->findAndModify(
            ['_id' => $name],
            ['$inc' => ['seq' => 1]],
            ['seq' => true],
            ['new' => true, 'upsert' => true]
        );
        if (isset($result['seq']))
        {
            return $result['seq'];
        }
        else
        {
            return false;
        }
    }

एक वास्तविक प्रोजेक्ट में, आपको कनेक्शन को फिर से बनाने के लिए हर समय की आवश्यकता नहीं होती है

आप MongoDatabase (यह पैटर्न सिंगलटन) बना सकते हैं

class MongoDatabase{
    private function __construct(){}
    public static function getInstance(){...} // return MongoClient
} 

और कॉल नीड मेथड

MongoDatabase::getInstance()->selectCollection('counters')->findAndModify(...)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में सरणी के भीतर $push का उपयोग करना

  2. नेवला खोज () संख्या प्रकार फ़ील्ड के लिए RegExp

  3. मोंगोडीबी $currentDate

  4. Node.js, MongoDB - एकाधिक दस्तावेज़ सम्मिलित/अपडेट करना और एकल प्रतिक्रिया भेजना

  5. वर्तमान URL स्ट्रिंग पार्सर बहिष्कृत है