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

MongoDB क्वेरी को डायनामिक रूप से कैसे बनाएं

JavaScript फ़ंक्शन लिखकर डायनामिक क्वेरी ऑब्जेक्ट बनाएं

MongoDB शेल में आप JavaScript फ़ंक्शन लिखकर रनटाइम पर क्वेरी ऑब्जेक्ट डायनामिक रूप से बना सकते हैं। यह एप्लिकेशन कोड में उपयोगी होता है जहां फ़िल्टर यूज़र इनपुट पर आधारित होते हैं।

उदाहरण: संग्रह बनाना

> db.dynamicQueryDemo.insertOne({"Name": "John", "Subject": ["MongoDB", "MySQL"]});
{ "acknowledged": true, "insertedId": ObjectId("5cef5c5def71edecf6a1f69a") }
> db.dynamicQueryDemo.insertOne({"Name": "John", "Subject": ["C", "C++"]});
{ "acknowledged": true, "insertedId": ObjectId("5cef5c73ef71edecf6a1f69b") }
> db.dynamicQueryDemo.insertOne({"Name": "John", "Subject": ["MongoDB", "Java"]});
{ "acknowledged": true, "insertedId": ObjectId("5cef5c8bef71edecf6a1f69c") }

सभी डॉक्यूमेंट्स देखना

> db.dynamicQueryDemo.find().pretty();
{
    "_id": ObjectId("5cef5c5def71edecf6a1f69a"),
    "Name": "John",
    "Subject": ["MongoDB", "MySQL"]
}
{
    "_id": ObjectId("5cef5c73ef71edecf6a1f69b"),
    "Name": "John",
    "Subject": ["C", "C++"]
}
{
    "_id": ObjectId("5cef5c8bef71edecf6a1f69c"),
    "Name": "John",
    "Subject": ["MongoDB", "Java"]
}

डायनामिक क्वेरी फ़ंक्शन और उपयोग

एक फ़ंक्शन बनाएं जो सब्जेक्ट ऐरे के आधार पर $in या $nin क्वेरी ऑब्जेक्ट लौटाता है:

> function findDocument(subject) {
    var find = {};
    if (subject.length == 0)
        find["$nin"] = subject;
    else
        find["$in"] = subject;
    return find;
}
> var sub = ["MySQL", "MongoDB"];
> var myDoc = findDocument(sub);
> db.dynamicQueryDemo.aggregate([{
    $match: {
        "Subject": myDoc
    }
}]);

आउटपुट:

{
    "_id": ObjectId("5cef5c5def71edecf6a1f69a"),
    "Name": "John",
    "Subject": ["MongoDB", "MySQL"]
}
{
    "_id": ObjectId("5cef5c8bef71edecf6a1f69c"),
    "Name": "John",
    "Subject": ["MongoDB", "Java"]
}

फ़ंक्शन ने {$in: ["MySQL", "MongoDB"]} ऑब्जेक्ट बनाया, और एग्रीगेशन ने उन डॉक्यूमेंट्स को लौटाया जिनके Subject ऐरे में इनमें से कोई भी मान है।

उपयोग: यह पैटर्न एप्लिकेशन कोड (Node.js, Python, आदि) में क्वेरी बिल्डर बनाने के लिए उपयोगी है।

  1. - MongoDB क्वेरी में विशिष्ट कॉलम चुनना

    MongoDB में प्रोजेक्शन का उपयोग करके विशिष्ट फील्ड्स चुनना MongoDB में क्वेरी परिणामों में केवल वांछित फील्ड्स शामिल करने के लिए प्रोजेक्शन ऑब्जेक्ट (find का दूसरा पैरामीटर) में फील्ड को 1 (शामिल करें) या 0 (बहिष्कृत करें) सेट करें। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo415.insertOne({Clien

  1. - MongoDB में Sub-documents पर Find Query Execute करना

    Sub-documents के लिए dot notation का उपयोग करें। आइए पहले documents के साथ एक collection बनाते हैं: > db.demo537.insertOne({details:{SubjectName:MongoDB}}); { acknowledged : true, insertedId : ObjectId(5e8c8a10ef4dcbee04fbbc05) } > db.demo537.insertOne({details:{SubjectName:MySQL}}); { acknowl

  1. - MongoDB में SQL LIKE के समान क्वेरी कैसे करें?

    MongoDB में LIKE के समान कार्यक्षमता के लिए find() के साथ रेगुलर एक्सप्रेशन (//) का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo686.insertOne({FirstName:Robert}); { acknowledged : true, insertedId : ObjectId(5ea55182a7e81adc6a0b395c) } > db.demo686.insertOne({FirstName:John}); { acknowledg