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

PHP से डालने पर मोंगोडीबी पर जेएस निष्पादित करना

जावास्क्रिप्ट फ़ंक्शन बीएसओएन में प्रथम श्रेणी के प्रकार हैं (देखें विनिर्देश ), इसलिए दोनों उदाहरणों (JS शेल और PHP) में आप फ़ंक्शन को फ़ील्ड में ही संग्रहीत करेंगे। यदि आप फ़ंक्शन का मूल्यांकन करना चाहते हैं, तो आपको सर्वर-साइड जावास्क्रिप्ट निष्पादित करना होगा। इस उदाहरण पर विचार करें:

<?php

$m = new Mongo();
$db = $m->test;
$c = $db->foo;
$c->drop();

$f = 'function() { return 123; }';

$c->insert(['f' => new MongoCode($f)]);
var_dump($c->findOne()['f']);

$g = <<<'END'
    function() {
        var doc = db.foo.findOne();
        db.foo.update(
            { _id: doc._id },
            { $set: { f: doc.f() }}
        );
    }
END;

$db->execute(new MongoCode($g));

$c->insert(['f' => new MongoCode($f)]);
var_dump($c->findOne()['f']);

यह निम्नलिखित आउटपुट देता है:

object(MongoCode)#7 (2) {
  ["code"]=>
  string(26) "function() { return 123; }"
  ["scope"]=>
  array(0) {
  }
}
float(123)

यदि आपका फ़ंक्शन किसी बाहरी स्थिति पर निर्भर करता है (उदाहरण के लिए इसके परिणाम की गणना करने के लिए एक क्वेरी चलाने की आवश्यकता है), तो आप शायद इसे एक अलग फ़ील्ड में संग्रहीत करना चाहते हैं और समय-समय पर अपने दस्तावेज़ों पर पुनरावृति करना चाहते हैं और इसके आउटपुट को होल्ड करने के लिए किसी अन्य फ़ील्ड को अपडेट करना चाहते हैं। इसे लागू करते समय, ध्यान रखें कि सर्वर-साइड कोड मूल्यांकन कई समवर्ती सीमाएँ हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में गतिशील, गैर-अद्वितीय क्षेत्रों पर पूछताछ और छँटाई करते समय रंगे हुए पृष्ठांकन

  2. जावा मोंगोडीबी उप दस्तावेज़ के लिए मूल्य प्राप्त कर रहा है

  3. MongoDB $dateToParts

  4. स्प्रिंग डेटा मोंगो डीबी एकत्रीकरण

  5. कैसे वसंत डेटा का उपयोग कर मोंगो में जे एस फ़ाइल चलाने के लिए?