Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में संग्रहीत फंक्शन कैसे निष्पादित करें?

MongoDB जावास्क्रिप्ट फंक्शन्स को system.js सिस्टम संग्रह में संग्रहीत करने की अनुमति देता है। उन्हें db.eval() (निरस्त) के साथ निष्पादित किया जा सकता है या एप्लिकेशन कोड में लोड किया जा सकता है। नोट: db.eval MongoDB 4.4+ में निरस्त है और हटा दिया गया है; सर्वर-साइड JS निष्पादन से बचें।

फंक्शन संग्रहीत करें

> db.system.js.save({
    _id: "displayMessage",
    value: function (data) {
        return 'The Name is: ' + data;
    }
});
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : "displayMessage" })

फंक्शन निष्पादित करें (निरस्त)

> db.eval("displayMessage('John')");
WARNING: db.eval is deprecated
"The Name is: John"

आधुनिक विकल्प (अनुशंसित)

  • एप्लिकेशन-लेयर लॉजिक: अपने एप्लिकेशन कोड (Node.js, Python, Java, आदि) में फंक्शन लॉजिक रखें।
  • एग्रीगेशन एक्सप्रेशन: डेटा परिवर्तन के लिए $function (MongoDB 4.4+) या बिल्ट-इन ऑपरेटर्स का उपयोग करें।
  • ट्रिगर्स/चेंज स्ट्रीम्स: रिएक्टिव सर्वर-साइड लॉजिक के लिए Atlas ट्रिगर्स या चेंज स्ट्रीम्स का उपयोग करें।

$function उदाहरण (MongoDB 4.4+ एग्रीगेशन)

> db.demo.aggregate([
    { $project: {
        result: { $function: {
            body: function(name) { return "Hello " + name; },
            args: [ "$name" ],
            lang: "js"
        }}
    }}
]);

सर्वोत्तम अभ्यास

  • system.js और db.eval का उपयोग न करें; वे लॉकिंग, प्रतिकृति और सुरक्षा समस्याएं पैदा करते हैं।
  • व्यावसायिक तर्क को एप्लिकेशन लेयर में रखें।
  • सर्वर-साइड गणना के लिए, एग्रीगेशन पाइपलाइन ऑपरेटर्स ($add, $cond, $map, आदि) पसंद करें।
  1. - MongoDB में _id द्वारा समूह कैसे बनाएं

    MongoDB में _id द्वारा समूह बनाने के लिए, $group का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo529.insertOne({Score:10}); { acknowledged : true, insertedId : ObjectId(5e8b1d5bef4dcbee04fbbbe4) } > db.demo529.insertOne({Score:20}); { acknowledged : true, insertedId : ObjectId(

  1. - MongoDB Query - Collection Rename करना

    MongoDB में collection rename करने के लिए renameCollection() का उपयोग करें। Collection बनाना > db.demo690.insertOne({_id:101,Name:Sam}); { acknowledged : true, insertedId : 101 } > db.demo690.insertOne({_id:102,Name:Mike}); { acknowledged : true, insertedId : 102 } > db.demo690.insertOne({

  1. - MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करें

    MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करने के लिए, aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo705.insertOne( { _id:101, Information: [ { StudentName:Chris, StudentAge:21 }, { StudentName:David, StudentAge:23 },