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

MongoDB - एक संग्रह को क्वेरी करें

MongoDB db.collection.find() प्रदान करता है संग्रह के भीतर दस्तावेज़ों को क्वेरी करने की विधि।

db.collection.find() संग्रह में दस्तावेज़ों का चयन करता है और चयनित दस्तावेज़ों पर एक कर्सर लौटाता है।

सभी दस्तावेज़ लौटाएं

यह उदाहरण संगीतकारों . के सभी दस्तावेज़ लौटाता है संग्रह:

db.musicians.find()

परिणाम:

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }
{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 }
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 }
{ "_id" : 4, "name" : "Steve Morse", "instrument" : "Guitar", "born" : 1954 }
{ "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
{ "_id" : 6, "name" : "Jeff Martin", "instrument" : "Vocals", "born" : 1969 }
{ "_id" : 7, "name" : "Jeff Burrows", "instrument" : "Drums", "born" : 1968 }
{ "_id" : 8, "name" : "Stuart Chatwood", "instrument" : "Bass", "born" : 1969 }

यह सभी दस्तावेज़ लौटाता है क्योंकि हमने फ़िल्टरिंग मानदंड के रूप में कोई पैरामीटर पारित नहीं किया है।

उपरोक्त क्वेरी db.musicians.find( {} ) का संक्षिप्त रूप है . उपरोक्त क्वेरी में, हमने घुंघराले ब्रेसिज़ को छोड़ दिया {} . MongoDB के साथ काम करते समय यह पूरी तरह से मान्य है।

फ़िल्टरिंग मानदंड जोड़ें

आप केवल अपनी रुचि के मानदंड प्रदान करके परिणामों को फ़िल्टर कर सकते हैं।

उदाहरण के लिए, यदि हम केवल कलाकारों . के डीप पर्पल में रुचि रखते हैं संग्रह:

db.artists.find({ artistname : "Deep Purple" })

परिणाम:

{ "_id" : ObjectId("5781f85d48ef8c6b3ffb0150"), "artistname" : "Deep Purple", "albums" : [ { "album" : "Machine Head", "year" : 1972, "genre" : "Rock" }, { "album" : "Stormbringer", "year" : 1974, "genre" : "Rock" } ] }

परिणाम प्रारूपित करें

आपको उपरोक्त परिणाम पढ़ने में थोड़ा कठिन लग सकता है। दस्तावेज़ को टेक्स्ट की एक लंबी लाइन के रूप में लौटाया जाता है।

आप pretty() का उपयोग कर सकते हैं परिणामों को प्रारूपित करने की विधि ताकि उन्हें पढ़ना थोड़ा आसान हो।

बस pretty() संलग्न करें अंत तक, इस तरह:

db.artists.find({ artistname : "Deep Purple" }).pretty()

परिणाम:

{
	"_id" : ObjectId("5781f85d48ef8c6b3ffb0150"),
	"artistname" : "Deep Purple",
	"albums" : [
		{
			"album" : "Machine Head",
			"year" : 1972,
			"genre" : "Rock"
		},
		{
			"album" : "Stormbringer",
			"year" : 1974,
			"genre" : "Rock"
		}
	]
}

अधिक फ़िल्टरिंग विकल्प

परिणामों को फ़िल्टर करने के कुछ और तरीके यहां दिए गए हैं।

ANDनिर्दिष्ट करें शर्तें

आप निर्दिष्ट कर सकते हैं कि केवल दो या अधिक निर्दिष्ट मान वाले दस्तावेज़ ही लौटाए जाने चाहिए।

इस उदाहरण में, हम निर्दिष्ट करते हैं कि केवल वे संगीतकार जो ड्रम बजाते हैं और जहां 1950 से पहले पैदा हुआ हो उसे वापस किया जाना चाहिए। केवल दोनों मानदंडों से मेल खाने वाले दस्तावेज़ ही लौटाए जाएंगे।

db.musicians.find( { instrument: "Drums", born: { $lt: 1950 } } )

परिणाम:

{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 }

निर्दिष्ट करें OR शर्तें

आप यह भी निर्दिष्ट कर सकते हैं कि एक या दूसरा मान सत्य होना चाहिए। जब तक शर्तों में से एक सत्य है, दस्तावेज़ वापस कर दिया जाएगा।

इस उदाहरण में, हम ऐसे दस्तावेज़ चाहते हैं जिनमें ऐसे संगीतकार हों जो या तो ढोल बजाते हों, या जिनका जन्म 1950 से पहले हुआ हो।

db.musicians.find(
   {
     $or: [ { instrument: "Drums" }, { born: { $lt: 1950 } } ]
   }
)

परिणाम:

{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 }
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 }
{ "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
{ "_id" : 7, "name" : "Jeff Burrows", "instrument" : "Drums", "born" : 1968 }

$in संचालिका

$in ऑपरेटर आपको मूल्यों की एक सूची प्रदान करने की अनुमति देता है। यदि किसी दस्तावेज़ में इनमें से कोई भी मान है, तो उसे वापस कर दिया जाएगा।

निम्नलिखित उदाहरण का उपयोग करते हुए, हम उन सभी संगीतकारों को खोज रहे हैं जो या तो वोकल्स पर हैं, या गिटार बजाते हैं।

db.musicians.find( { instrument: { $in: [ "Vocals", "Guitar" ] } } )

परिणाम

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }
{ "_id" : 4, "name" : "Steve Morse", "instrument" : "Guitar", "born" : 1954 }
{ "_id" : 6, "name" : "Jeff Martin", "instrument" : "Vocals", "born" : 1969 }

दस्तावेज़ों की एक सरणी पूछें

यह उदाहरण दस्तावेज़ों की एक सरणी से पूछताछ करता है। इसे ऐसे एल्बम मिलते हैं जो वर्ष 2000 के बाद रिलीज़ हुए थे।

db.artists.find(
   {
      albums: {
                $elemMatch: {
                     year: { $gt: 2000 }
                }
      }
   }
).pretty()

परिणाम:

{
	"_id" : ObjectId("578217c248ef8c6b3ffb015a"),
	"artistname" : "Robben Ford",
	"albums" : [
		{
			"album" : "Bringing it Back Home",
			"year" : 2013,
			"genre" : "Blues"
		},
		{
			"album" : "Talk to Your Daughter",
			"year" : 1988,
			"genre" : "Blues"
		}
	]
}
{
	"_id" : ObjectId("578217c248ef8c6b3ffb015b"),
	"artistname" : "Snoop Dogg",
	"albums" : [
		{
			"album" : "Tha Doggfather",
			"year" : 1996,
			"genre" : "Rap"
		},
		{
			"album" : "Reincarnated",
			"year" : 2013,
			"genre" : "Reggae"
		}
	]
}

आप देखेंगे कि इन परिणामों में 2000 से पहले के एल्बम भी शामिल हैं। यह सही है — यह दस्तावेज़-उन्मुख डेटाबेस के काम करने का तरीका है। कोई भी प्रश्न पूरे दस्तावेज़ को लौटा देगा (लेकिन केवल वे दस्तावेज़ जो निर्दिष्ट मानदंडों से मेल खाते हैं)।

db.collection.findOne() विधि

आप db.collection.findOne() . का उपयोग कर सकते हैं निर्दिष्ट क्वेरी मानदंड को पूरा करने वाले एक दस्तावेज़ को वापस करने की विधि।

यदि एक से अधिक दस्तावेज़ मानदंडों को पूरा करते हैं, तो केवल पहला ही लौटाया जाता है, जैसा कि डिस्क पर दस्तावेज़ों के प्राकृतिक क्रम द्वारा निर्धारित किया जाता है।

तो इस तरह एक संपूर्ण संग्रह खोज रहे हैं:

db.musicians.findOne( )

केवल एक दस्तावेज़ लौटाएगा:

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }

अगर हम findOne() . को बदलते हैं करने के लिए find() इस तरह:

db.musicians.find( )

हम देखते हैं कि संग्रह में वास्तव में 8 दस्तावेज़ हैं:

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }
{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 }
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 }
{ "_id" : 4, "name" : "Steve Morse", "instrument" : "Guitar", "born" : 1954 }
{ "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
{ "_id" : 6, "name" : "Jeff Martin", "instrument" : "Vocals", "born" : 1969 }
{ "_id" : 7, "name" : "Jeff Burrows", "instrument" : "Drums", "born" : 1968 }
{ "_id" : 8, "name" : "Stuart Chatwood", "instrument" : "Bass", "born" : 1969 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:लोकेल ::पहलू ::_S_create_c_locale नाम मान्य नहीं है

  2. MongoDB में किसी संपत्ति के आधार पर नेस्टेड सरणी ऑब्जेक्ट अपडेट करें

  3. पता लगाएँ कि क्या किसी मान में SQL में कम से कम एक संख्यात्मक अंक है

  4. mongorestore विफल:कोई पहुंच योग्य सर्वर नहीं

  5. पीएचपी स्टार्टअप गतिशील पुस्तकालय लोड करने में असमर्थ php_mongo.dll