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

MongoDB डेटाबेस में संग्रह को सूचीबद्ध करने के 4 तरीके

MongoDB का उपयोग करते समय, डेटाबेस में संग्रह को सूचीबद्ध करने के एक से अधिक तरीके हैं।

MongoDB डेटाबेस में संग्रह की सूची प्राप्त करने के चार तरीके यहां दिए गए हैं:

  • show collections कमांड
  • listCollections कमांड
  • db.getCollectionNames() विधि
  • db.getCollectionInfos() विधि

show collections कमांड

यदि आप मोंगो शेल का उपयोग कर रहे हैं, तो संग्रहों की सूची प्राप्त करने का सबसे तेज़ तरीका show collections का उपयोग करना है आज्ञा। यह आदेश वर्तमान डेटाबेस में संग्रह और विचारों की एक सूची प्राप्त करता है।

उदाहरण:

show collections

परिणाम:

 employees
 pets
 pettypes
 products
 system.views 

इस मामले में, पांच परिणाम हैं। हम केवल इसे देखकर नहीं बता सकते, लेकिन pettypes वास्तव में एक दृश्य है। अन्य संग्रह हैं।

system.views संग्रह एक सिस्टम संग्रह है जिसमें डेटाबेस में प्रत्येक दृश्य के बारे में जानकारी होती है।

लौटाया गया वास्तविक संग्रह आपके पहुंच स्तर पर निर्भर करेगा:

  • आवश्यक पहुंच वाले उपयोगकर्ताओं के लिए, show collections डेटाबेस के लिए गैर-सिस्टम संग्रहों को सूचीबद्ध करता है।
  • आवश्यक पहुंच के बिना उपयोगकर्ताओं के लिए, show collections केवल उन संग्रहों को सूचीबद्ध करता है जिनके लिए उपयोगकर्ताओं के पास विशेषाधिकार हैं।

listCollections कमांड

listCollections प्रशासनिक कमांड डेटाबेस में संग्रह और विचारों का नाम और विकल्प देता है। यह जानकारी को एक दस्तावेज़ के रूप में लौटाता है।

उदाहरण:

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )

परिणाम:

{
    "cursor" : {
        "id" : NumberLong(0),
        "ns" : "PetHotel.$cmd.listCollections",
        "firstBatch" : [
            {
                "name" : "employees",
                "type" : "collection"
            },
            {
                "name" : "system.views",
                "type" : "collection"
            },
            {
                "name" : "pets",
                "type" : "collection"
            },
            {
                "name" : "products",
                "type" : "collection"
            },
            {
                "name" : "pettypes",
                "type" : "view"
            }
        ]
    },
    "ok" : 1
}

दस्तावेज़ में जानकारी होती है जिसके साथ संग्रह जानकारी के लिए एक कर्सर बनाना है।

इस बार हम देख सकते हैं कि कौन से संग्रह हैं और कौन से विचार हैं।

हम इस तरह कमांड भी चला सकते हैं:

db.runCommand( { listCollections: 1.0 } )

ऐसा करने से संग्रह के बारे में बहुत अधिक जानकारी मिलती है। देखें db.getCollectionInfos() डेटा को इस तरह चलाने के दौरान लौटाए गए डेटा को देखने के लिए नीचे दिया गया उदाहरण (db.getCollectionInfos() विधि listCollections . के आसपास एक आवरण है )।

db.getCollectionNames() विधि

db.getCollectionNames() विधि वर्तमान डेटाबेस में सभी संग्रहों और दृश्यों के नाम वाली एक सरणी देता है, या यदि अभिगम नियंत्रण के साथ चल रहा है, तो उपयोगकर्ता के विशेषाधिकार के अनुसार संग्रह के नाम।

उदाहरण:

db.getCollectionNames()

परिणाम:

 [ "employees", "pets", "pettypes", "products", "system.views" ] 

db.getCollectionInfos() विधि

db.getCollectionInfos() विधि संग्रह के साथ दस्तावेज़ों की एक सरणी देता है या वर्तमान डेटाबेस के लिए नाम और विकल्प जैसी जानकारी देखता है। परिणाम उपयोगकर्ता के विशेषाधिकार पर निर्भर करते हैं।

यहां बिना किसी तर्क के इसे कॉल करने का एक उदाहरण दिया गया है:

db.getCollectionInfos()

परिणाम:

[
    {
        "name" : "employees",
        "type" : "collection",
        "options" : {
            
        },
        "info" : {
            "readOnly" : false,
            "uuid" : UUID("07e89c25-8842-4331-a1a9-96fe0b4745dc")
        },
        "idIndex" : {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_"
        }
    },
    {
        "name" : "pets",
        "type" : "collection",
        "options" : {
            
        },
        "info" : {
            "readOnly" : false,
            "uuid" : UUID("91d1c6d8-8516-455d-a3c2-b157e1998f8c")
        },
        "idIndex" : {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_"
        }
    },
    {
        "name" : "pettypes",
        "type" : "view",
        "options" : {
            "viewOn" : "pets",
            "pipeline" : [
                {
                    "$project" : {
                        "type" : 1
                    }
                }
            ]
        },
        "info" : {
            "readOnly" : true
        }
    },
    {
        "name" : "products",
        "type" : "collection",
        "options" : {
            "capped" : true,
            "size" : 7500544,
            "max" : 7000
        },
        "info" : {
            "readOnly" : false,
            "uuid" : UUID("cb084959-f374-4f51-bbed-8998c13dcbe2")
        },
        "idIndex" : {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_"
        }
    },
    {
        "name" : "system.views",
        "type" : "collection",
        "options" : {
            
        },
        "info" : {
            "readOnly" : false,
            "uuid" : UUID("3f458338-0678-4d0f-a0cf-eacbd43c8cad")
        },
        "idIndex" : {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_"
        }
    }
]

db.getCollectionInfos() . की परिभाषा वास्तव में ऐसा होता है:

db.getCollectionInfos(filter, nameOnly, authorizedCollections)

तो हम filter . का उपयोग कर सकते हैं क्वेरी अभिव्यक्ति के आधार पर संग्रह की सूची को फ़िल्टर करने के लिए पैरामीटर। इसे विधि द्वारा लौटाए गए किसी भी फ़ील्ड के विरुद्ध लागू किया जा सकता है।

आप nameOnly . का भी उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए पैरामीटर कि विधि केवल संग्रह और विचारों के नाम लौटाएगी।

authorizedCollections पैरामीटर, जब true . पर सेट किया जाता है और nameOnly: true . के साथ प्रयोग किया जाता है , एक्सेस नियंत्रण लागू होने पर कमांड चलाने के लिए आवश्यक विशेषाधिकार (यानी डेटाबेस पर सूची चयन क्रिया) के बिना उपयोगकर्ता को अनुमति देता है। इस मामले में, आदेश केवल उन संग्रहों को लौटाता है जिनके लिए उपयोगकर्ता के पास विशेषाधिकार हैं।

db.getCollectionInfos() using का उपयोग करने का उदाहरण इन मापदंडों के साथ:

db.getCollectionInfos( {}, true, true )

परिणाम:

[
    {
        "name" : "employees",
        "type" : "collection"
    },
    {
        "name" : "pets",
        "type" : "collection"
    },
    {
        "name" : "pettypes",
        "type" : "view"
    },
    {
        "name" : "products",
        "type" : "collection"
    },
    {
        "name" : "system.views",
        "type" : "collection"
    }
]

यहाँ एक है जहाँ मैं इसे केवल एक विशिष्ट नाम पर फ़िल्टर करता हूँ:

db.getCollectionInfos( { name: "pets" }, true, true )

परिणाम:

 [ { "name" : "pets", "type" : "collection" } ] 

और जब मैं अंतिम दो तर्क हटाता हूं तो यह होता है:

db.getCollectionInfos( { name: "pets" } )

परिणाम:

[
    {
        "name" : "pets",
        "type" : "collection",
        "options" : {
            
        },
        "info" : {
            "readOnly" : false,
            "uuid" : UUID("91d1c6d8-8516-455d-a3c2-b157e1998f8c")
        },
        "idIndex" : {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_"
        }
    }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. विंडोज़ की तुलना में लिनक्स पर मोंगोडब का प्रदर्शन बेहतर क्यों है?

  2. एक्सप्रेस + MongoDB के लिए सर्वश्रेष्ठ सत्र संग्रहण मिडलवेयर

  3. नेवला नेस्टेड वस्तु को नहीं सहेज रहा है

  4. MongoDB के लिए एक प्रदर्शन धोखा पत्रक

  5. बड़े संग्रह के लिए MongoDB में बल्क इंसर्ट प्रदर्शन