MongoDB - क्वेरी दस्तावेज़

इस अध्याय में, हम सीखेंगे कि कैसे MongoDB संग्रह से दस्तावेज़ को क्वेरी करना है।

खोज () विधि

MongoDB संग्रह के डेटा को क्वेरी करने के लिए, आपको MongoDB का उपयोग करना होगा find() तरीका।

वाक्य - विन्यास

का मूल सिंटैक्स find() विधि इस प्रकार है -

>db.COLLECTION_NAME.find()

find() पद्धति सभी दस्तावेजों को गैर-संरचित तरीके से प्रदर्शित करेगी।

उदाहरण

मान लें कि हमने mycol नामक एक संग्रह बनाया है -

> use sampleDB
switched to db sampleDB
> db.createCollection("mycol")
{ "ok" : 1 }
>

और इसमें 3 डॉक्यूमेंट डाले (जैसे नीचे दिखाए गए तरीके से) -

> db.mycol.insert([
	{
		title: "MongoDB Overview",
		description: "MongoDB is no SQL database",
		by: "tutorials point",
		url: "http://www.tutorialspoint.com",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 100
	},
	{
		title: "NoSQL Database",
		description: "NoSQL database doesn't have tables",
		by: "tutorials point",
		url: "http://www.tutorialspoint.com",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 20,
		comments: [
			{
				user:"user1",
				message: "My first comment",
				dateCreated: new Date(2013,11,10,2,35),
				like: 0
			}
		]
	}
])

निम्नलिखित विधि संग्रह में सभी दस्तावेजों को पुनः प्राप्त करती है -

> db.mycol.find()
{ "_id" : ObjectId("5dd4e2cc0821d3b44607534c"), "title" : "MongoDB Overview", "description" : "MongoDB is no SQL database", "by" : "tutorials point", "url" : "http://www.tutorialspoint.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5dd4e2cc0821d3b44607534d"), "title" : "NoSQL Database", "description" : "NoSQL database doesn't have tables", "by" : "tutorials point", "url" : "http://www.tutorialspoint.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 20, "comments" : [ { "user" : "user1", "message" : "My first comment", "dateCreated" : ISODate("2013-12-09T21:05:00Z"), "like" : 0 } ] }
>

सुंदर () विधि

परिणामों को स्वरूपित तरीके से प्रदर्शित करने के लिए, आप सुंदर () विधि का उपयोग कर सकते हैं।

वाक्य - विन्यास

>db.COLLECTION_NAME.find().pretty()

उदाहरण

निम्नलिखित उदाहरण mycol नाम के संग्रह से सभी दस्तावेजों को पुनः प्राप्त करते हैं और उन्हें आसानी से पढ़े जाने वाले प्रारूप में व्यवस्थित करते हैं।

> db.mycol.find().pretty()
{
	"_id" : ObjectId("5dd4e2cc0821d3b44607534c"),
	"title" : "MongoDB Overview",
	"description" : "MongoDB is no SQL database",
	"by" : "tutorials point",
	"url" : "http://www.tutorialspoint.com",
	"tags" : [
		"mongodb",
		"database",
		"NoSQL"
	],
	"likes" : 100
}
{
	"_id" : ObjectId("5dd4e2cc0821d3b44607534d"),
	"title" : "NoSQL Database",
	"description" : "NoSQL database doesn't have tables",
	"by" : "tutorials point",
	"url" : "http://www.tutorialspoint.com",
	"tags" : [
		"mongodb",
		"database",
		"NoSQL"
	],
	"likes" : 20,
	"comments" : [
		{
			"user" : "user1",
			"message" : "My first comment",
			"dateCreated" : ISODate("2013-12-09T21:05:00Z"),
			"like" : 0
		}
	]
}

FindOne () विधि

खोज () विधि के अलावा है findOne() विधि, वह केवल एक दस्तावेज़ लौटाता है।

वाक्य - विन्यास

>db.COLLECTIONNAME.findOne()

उदाहरण

निम्नलिखित उदाहरण मोंगोडीबी अवलोकन शीर्षक के साथ दस्तावेज़ को पुनः प्राप्त करता है।

> db.mycol.findOne({title: "MongoDB Overview"})
{
	"_id" : ObjectId("5dd6542170fb13eec3963bf0"),
	"title" : "MongoDB Overview",
	"description" : "MongoDB is no SQL database",
	"by" : "tutorials point",
	"url" : "http://www.tutorialspoint.com",
	"tags" : [
		"mongodb",
		"database",
		"NoSQL"
	],
	"likes" : 100
}

RDBMS मानगोडीबी में क्लॉज इक्विलेवेंट्स कहां है

दस्तावेज़ को कुछ शर्त के आधार पर क्वेरी करने के लिए, आप निम्नलिखित कार्यों का उपयोग कर सकते हैं।

ऑपरेशन वाक्य - विन्यास उदाहरण RDBMS समतुल्य
समानता {<कुंजी>: {$ जैसे; <मूल्य>}} db.mycol.find ({"by": "ट्यूटोरियल्स पॉइंट"})। सुंदर () कहाँ = 'ट्यूटोरियल पॉइंट' द्वारा
से कम {<कुंजी>: {$ lt: <मूल्य>}} db.mycol.find ({ "पसंद": {$ lt: 50}})। सुंदर () जहां पसंद है <50
बराबरी से कम {<कुंजी>: {$ एलटीई: <मूल्य>}} db.mycol.find ({ "पसंद": {$ एलटीई: 50}})। सुंदर () जहाँ पसंद है <= 50
से अधिक {<कुंजी>: {$ जीटी: <मूल्य>}} db.mycol.find ({ "पसंद": {$ जीटी: 50}})। सुंदर () जहां पसंद> 50
ग्रेटर थान बराबर {<कुंजी>: {$ gte: <मूल्य>}} db.mycol.find ({ "पसंद": {$ gte: 50}})। सुंदर () जहाँ पसंद है = = ५०
न के बराबर {<कुंजी>: {$ ne: <मूल्य>}} db.mycol.find ({ "पसंद": {$ ne: 50}})। सुंदर () जहां पसंद है! = 50
किसी सरणी में मान {<key>: {$ in: [<value1>, <value2>, …… <valueN>]}} db.mycol.find ({"नाम": {$ in: ["राज", "राम", "रघु"]}})। सुंदर () जहाँ नाम किसी भी मूल्य से मेल खाता है: ["राज", "राम", "रघु"]
मान किसी सरणी में नहीं {<कुंजी>: {$ निन: <मूल्य>}} db.mycol.find ({"नाम": {$ Nin: ["रामू", "राघव"}}})। () जहाँ नाम मान सरणी में नहीं है: ["रामू", "राघव"] या, बिल्कुल मौजूद नहीं है

और MongoDB में

वाक्य - विन्यास

AND शर्त के आधार पर दस्तावेजों को क्वेरी करने के लिए, आपको $ और कीवर्ड का उपयोग करने की आवश्यकता है। निम्नलिखित का मूल सिंटैक्स है -

>db.mycol.find({ $and: [ {<key1>:<value1>}, { <key2>:<value2>} ] })

उदाहरण

उदाहरण के बाद 'ट्यूटोरियल पॉइंट' द्वारा लिखे गए सभी ट्यूटोरियल दिखाएंगे और जिसका शीर्षक 'MongoDB ओवरव्यू' होगा।

> db.mycol.find({$and:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty()
{
	"_id" : ObjectId("5dd4e2cc0821d3b44607534c"),
	"title" : "MongoDB Overview",
	"description" : "MongoDB is no SQL database",
	"by" : "tutorials point",
	"url" : "http://www.tutorialspoint.com",
	"tags" : [
		"mongodb",
		"database",
		"NoSQL"
	],
	"likes" : 100
}
>

ऊपर दिए गए उदाहरण के लिए, समतुल्य जहां खंड होगा ' where by = 'tutorials point' AND title = 'MongoDB Overview' '। आप खोज खंड में किसी भी संख्या में कुंजी, मान जोड़े पास कर सकते हैं।

या MongoDB में

वाक्य - विन्यास

OR शर्त के आधार पर दस्तावेजों को क्वेरी करने के लिए, आपको उपयोग करने की आवश्यकता है $orकीवर्ड। निम्नलिखित का मूल सिंटैक्स हैOR -

>db.mycol.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

उदाहरण

निम्नलिखित उदाहरण 'ट्यूटोरियल पॉइंट' द्वारा लिखे गए सभी ट्यूटोरियल्स को दिखाएंगे या जिनका शीर्षक 'MongoDB ओवरव्यू' होगा।

>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty()
{
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "tutorials point",
   "url": "http://www.tutorialspoint.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"
}
>

AND और OR का एक साथ उपयोग करना

उदाहरण

निम्न उदाहरण उन दस्तावेजों को दिखाएगा जो 10 से अधिक पसंद करते हैं और जिसका शीर्षक या तो 'MongoDB अवलोकन' है या 'ट्यूटोरियल पॉइंट' है। समतुल्य एसक्यूएल जहां खण्ड है'where likes>10 AND (by = 'tutorials point' OR title = 'MongoDB Overview')'

>db.mycol.find({"likes": {$gt:10}, $or: [{"by": "tutorials point"},
   {"title": "MongoDB Overview"}]}).pretty()
{
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "tutorials point",
   "url": "http://www.tutorialspoint.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"
}
>

MongoDB में NOR

वाक्य - विन्यास

नहीं शर्त के आधार पर दस्तावेजों को क्वेरी करने के लिए, आपको $ not कीवर्ड का उपयोग करने की आवश्यकता है। निम्नलिखित का मूल सिंटैक्स हैNOT -

>db.COLLECTION_NAME.find(
	{
		$not: [
			{key1: value1}, {key2:value2}
		]
	}
)

उदाहरण

मान लें कि हमने संग्रह में 3 दस्तावेज़ सम्मिलित किए हैं empDetails जैसा कि नीचे दिखाया गया है -

db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Age: "26",
			e_mail: "[email protected]",
			phone: "9000012345"
		},
		{
			First_Name: "Rachel",
			Last_Name: "Christopher",
			Age: "27",
			e_mail: "[email protected]",
			phone: "9000054321"
		},
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Age: "24",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)

उदाहरण के बाद दस्तावेज़ को पुनः प्राप्त किया जाएगा जिसका पहला नाम "राधिका" नहीं है और अंतिम नाम "क्रिस्टोफर" नहीं है

> db.empDetails.find(
	{
		$nor:[
			40
			{"First_Name": "Radhika"},
			{"Last_Name": "Christopher"}
		]
	}
).pretty()
{
	"_id" : ObjectId("5dd631f270fb13eec3963bef"),
	"First_Name" : "Fathima",
	"Last_Name" : "Sheik",
	"Age" : "24",
	"e_mail" : "[email protected]",
	"phone" : "9000054321"
}

MongoDB में नहीं

वाक्य - विन्यास

दस्तावेज़ों की स्थिति के आधार पर क्वेरी करने के लिए, आपको निम्नलिखित नहीं बल्कि मूल सिंटैक्स का $ $ कीवर्ड का उपयोग करने की आवश्यकता है NOT -

>db.COLLECTION_NAME.find(
	{
		$NOT: [
			{key1: value1}, {key2:value2}
		]
	}
).pretty()

उदाहरण

निम्नलिखित उदाहरण दस्तावेज़ (ओं) को पुनः प्राप्त करेंगे जिनकी उम्र 25 से अधिक नहीं है

> db.empDetails.find( { "Age": { $not: { $gt: "25" } } } )
{
	"_id" : ObjectId("5dd6636870fb13eec3963bf7"),
	"First_Name" : "Fathima",
	"Last_Name" : "Sheik",
	"Age" : "24",
	"e_mail" : "[email protected]",
	"phone" : "9000054321"
}