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

क्या मैं MongoDB इंडेक्स पर क्वेरी कर सकता हूँ अगर मेरी क्वेरी में $or ऑपरेटर है?


MongoDB में $or ऑपरेटर के साथ इंडेक्स का उपयोग

हाँ, आप ऐसा कर सकते हैं। पहले, आपको एक इंडेक्स बनाना होगा और फिर explain() का उपयोग करना होगा। आइए पहले एक MongoDB इंडेक्स बनाते हैं। निम्नलिखित क्वेरी है:

> db.indexOrQueryDemo.ensureIndex({"First":1});

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

{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 2, "numIndexesAfter" : 3, "ok" : 1 }

दूसरा इंडेक्स बनाने का क्वेरी

> db.indexOrQueryDemo.ensureIndex({"Second":1});

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

{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 3, "numIndexesAfter" : 4, "ok" : 1 }

$or ऑपरेटर के साथ इंडेक्स का उपयोग करने का क्वेरी (explain() के साथ)

> db.indexOrQueryDemo.find({$or:[{First:1}, {Second:2}]}).explain();

यह निम्नलिखित आउटपुट देगा (क्वेरी प्लानर दिखाता है कि दोनों इंडेक्स का उपयोग किया गया है):

{ "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.indexOrQueryDemo", "indexFilterSet" : false, "parsedQuery" : { "$or" : [ { "First" : { "$eq" : 1 } }, { "Second" : { "$eq" : 2 } } ] }, "winningPlan" : { "stage" : "SUBPLAN", "inputStage" : { "stage" : "FETCH", "inputStage" : { "stage" : "OR", "inputStages" : [ { "stage" : "IXSCAN", "keyPattern" : { "First" : 1 }, "indexName" : "First_1", "isMultiKey" : false, "multiKeyPaths" : { "First" : [ ] }, "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "First" : [ "[1.0, 1.0]" ] } }, { "stage" : "IXSCAN", "keyPattern" : { "Second" : 1 }, "indexName" : "Second_1", "isMultiKey" : false, "multiKeyPaths" : { "Second" : [ ] }, "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "Second" : [ "[2.0, 2.0]" ] } } ] } } }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "DESKTOP-QN2RB3H", "port" : 27017, "version" : "4.0.5", "gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412" }, "ok" : 1 }

निष्कर्ष: आउटपुट से पता चलता है कि क्वेरी प्लानर ने दोनों इंडेक्स (First_1 और Second_1) का उपयोग किया है, जिसका अर्थ है कि $or ऑपरेटर इंडेक्स के साथ काम करता है।

  1. - MongoDB में फ़ील्ड नाम कैसे बदलें?

    फ़ील्ड नाम बदलने के लिए, $project का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo517.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5e88a2a2987b6e0e9d18f595) } > db.demo517.insertOne({Name:David Miller}); { acknowledged : true, insertedId : ObjectI

  1. - MongoDB $or ऑपरेटर के साथ दस्तावेज़ कैसे प्राप्त करें

    $or ऑपरेटर दो या अधिक एक्सप्रेशन की सरणी पर लॉजिकल OR ऑपरेशन करता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo674.insertOne({Name:Chris,Age:21}); { acknowledged : true, insertedId : ObjectId(5ea3f33604263e90dac943eb) } > db.demo674.insertOne({Name:David,Age:23}); { acknowledged : true

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma