English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحديث المستندات في MongoDB

MongoDB update()}و save()يستخدم هذا الطريقة لتحديث المستند إلى مجموعة. يحدث قسم update() القيم الحالية في المستند الحالي، بينما يبدل قسم save() المستند الحالي بالمستند المرسل في قسم save().

مетод Update() لمongoDB

قسم تعديل() يحدث القيم الحالية في مستند المستند الحالي.

النحو

update()}النحو الأساسي للمETHOD هو كما يلي-

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

مثال

افترض أن مجموعة mycol تحتوي على البيانات التالية.

{"_id" : ObjectId(5983548781331adf45ec5), "title":"مقدمة MongoDB"}
{"_id" : ObjectId(5983548781331adf45ec6), "title":"مقدمة NoSQL"}
{"_id" : ObjectId(5983548781331adf45ec7), "title":"مقدمة التعليمات الجديدة"}

في هذا المثال، سيتم تعيين عنوان المستند الذي يحتوي على عنوان "MongoDB Overview" إلى عنوان جديد "New MongoDB Tutorial".

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'تعليمات MongoDB الجديدة'}})
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>db.mycol.find()
{"_id" : ObjectId(5983548781331adf45ec5), "title":"تعليمات MongoDB الجديدة"}
{"_id" : ObjectId(5983548781331adf45ec6), "title":"مقدمة NoSQL"}
{"_id" : ObjectId(5983548781331adf45ec7), "title":"مقدمة التعليمات الجديدة"}
>

بافتراض أن MongoDB تحديث فقط مستند واحد بشكل افتراضي. إذا كنت ترغب في تحديث مستندات متعددة، يجب عليك تعيين المعاملات "multi" إلى true.

>db.mycol.update({'title':'MongoDB 简介'},
   {$set:{'title':'مقدمة MongoDB الجديدة'}},{multi:true})

MongoDB Method Save()

save()يستخدم مكتبة MongoDB() لاستبدال المستند الحالي بالمستند الجديد الذي يتم تمريره إليها.

النحو

MongoDB save()نحو نحو الجملة الأساسية للمثال التالي-

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

مثال

في هذا المثال، سيتم استبدال المستند باستخدام _id '5983548781331adf45ec5'.

>db.mycol.save(
   {
      "_id" : ObjectId("507f191e810c19729de860ea"), 
		"title":"موضوع التعليمات الجديدة",
      "by":"المقدمة الأساسية"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("507f191e810c19729de860ea")
)
>db.mycol.find()
{	"_id"	: ObjectId("507f191e810c19729de860e6"),	"title":"مقدمة جديدة إلى دروس"}
   "by":"Tutorials Point"
{	"_id"	: ObjectId("507f191e810c19729de860e6"),	"title":"مقدمة إلى NoSQL"}
{	"_id"	: ObjectId("507f191e810c19729de860e6"),	"title":"موضوع دروس جديدة"}
>

MongoDBfindOneAndUpdate()METHOD

findOneAndUpdate()يُحدث VALUES الحالية في الوثائق.

النحو

findOneAndUpdate()النحو الأساسي للمETHOD هو كما يلي-

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

مثال

افترض أننا قمنا بإنشاء مجموعة تُدعى 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"
		}
	]
)

مثال على تحديث قيمة العمر وبريد الالكتروني للوثيقة التي تُدعى “Radhika”.

>db.empDetails.findOneAndUpdate(
	{First_Name:	'Radhika'},
	{	$set:	{	Age:	'30',	e_mail:	'[email protected]'	}}
)
{
	"_id"	: 	ObjectId("5dd6636870fb13eec3963bf5"),
	"First_Name"	: 	"Radhika"
	"Last_Name"	: 	"Sharma"
	"Age"	: 	"30"
	"e_mail"	: 	"[email protected]",
	"phone"	: 	"9000012345"
}

طريقة MongoDB updateOne()

يحديث هذا المتغير الوثيقة الواحدة التي تتطابق مع المرشح المقدم.

النحو

قواعد النحو لمتغير updateOne() هي كالتالي:

>db.COLLECTION_NAME.updateOne(<filter>,	<update>)

مثال

> 	db.empDetails.updateOne(
	{First_Name:	'Radhika'},
	{	$set:	{	Age:	'30',	e_mail:	'[email protected]'	}}
)
{	"acknowledged"	: 	true,	"matchedCount"	: 	1,	"modifiedCount"	: 	0	}
>

طريقة MongoDB updateMany()

يحديث متغير updateMany() جميع الوثائق التي تتطابق مع المرشح المقدم.

النحو

قواعد النحو لمتغير updateMany() هي كالتالي:

>db.COLLECTION_NAME.update(<filter>,	<update>)

مثال

> 	db.empDetails.updateMany(
	{Age:{	$gt:	"25"	}},
	{	$set:	{	Age:	'00'	}}
)
{	"acknowledged"	: 	true,	"matchedCount"	: 	2,	"modifiedCount"	: 	2	}

إذا كنت تستخدم الطريقة find الموضحة أدناه للبحث عن محتويات الوثيقة، يمكنك رؤية القيم المعدلة-

> 	db.empDetails.find()
{	"_id"	: 	ObjectId("5dd6636870fb13eec3963bf5"),	"First_Name"	: 	"Radhika",	"Last_Name"	: 	"Sharma",	"Age"	: 	"00",	"e_mail"	: 	"[email protected]",	"phone"	: 	"9000012345"	}
{ "_id" : ObjectId("5dd6636870fb13eec3963bf6"), "First_Name" : "Rachel", "Last_Name" : "Christopher", "Age" : "00", "e_mail" : "[email protected]", "phone" : "9000054321" }
{ "_id" : ObjectId("5dd6636870fb13eec3963bf7"), "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" }
>