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

إدراج مستند في MongoDB

في هذا الفصل، سنتعلم كيفية إدراج الوثائق في مجموعة MongoDB.

طريقة insert()

إذا كنت ترغب في إدخال البيانات في مجموعة MongoDB، تحتاج إلى استخدامinsert() أو save()方法。

النحو

insert()命令的基本语法如下-

>db.COLLECTION_NAME.insert(document)

在线示例

> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "MongoDB Overview",
... description: "MongoDB is no sql database",
... by: "基础教程",
... url: "https://ar.oldtoolbag.com",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>

这是我们在上一章中创建的集合名称 mycol 。如果数据库中不存在该集合,则MongoDB将创建此集合,然后将文档插入其中。

在插入的文档中,如果不指定_id参数,则MongoDB会为此文档分配一个唯一的ObjectId。

_id是12字节的十六进制数字,对于集合中的每个文档都是唯一的。12字节被划分如下:

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

还可以将文档数组传递到insert()方法,如下所示:

> db.createCollection("post")
> db.post.insert([
	{
		title: "MongoDB Overview",
		description: "MongoDB不是SQL数据库",
		by: "基础教程",
		url: "http://ar.oldtoolbag.com",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 100
	}
	{
	title: "NoSQL Database",
	description: "NoSQL数据库没有表",
	by: "基础教程",
	url: "http://ar.oldtoolbag.com",
	tags: ["mongodb", "database", "NoSQL"],
	likes: 20,
	comments: [
		{
			user:"user1",
			message: "My first comment",
			dateCreated: new Date(2013,11,10,2,35),
			like: 0
		}
	]
}
})
BulkWriteResult({
	"writeErrors" : [],
	"writeConcernErrors" : [],
	"nInserted" : 2,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [],
)
>

يمكنك أيضًا استخدامdb.post.save(document). إذا لم تكن قد قمت بتحديد _id في المستند، _id، فإن طريقة save()معطريقة insert()مثلها. إذا تم تحديد _id، فإنه سيستبدل بيانات المستند الذي يحتوي على _id المحدد في طريقة save().

طريقة insertOne()

إذا كنت بحاجة إلى تحديد مستند واحد فقط في المجموعة، يمكنك استخدام هذه الطريقة.

النحو

النحو الأساسي لـ insertOne() هو كالتالي:

> db.COLLECTION_NAME.insertOne(document)

النموذج

النموذج التالي يقوم بإنشاء مجموعة جديدة تُدعى empDetails باستخدام طريقة insertOne().

> db.createCollection("empDetails")
{ "ok" : 1 }
> db.empDetails.insertOne(
	{
		First_Name: "Radhika",
		Last_Name: "Sharma",
		Date_Of_Birth: "1995-09-26",
		e_mail: "[email protected]",
		phone: "9848022338"
	)
{
	"acknowledged": true,
	"insertedId" : ObjectId("5dd62b4070fb13eec3963bea")
}
>

طريقة insertMany()

يمكنك استخدام طريقة insertMany() لتحديد عدة مستندات. بالنسبة لهذه الطريقة، يجب عليك تقديم مجموعة مستندات.

النموذج

النموذج التالي يستخدم طريقة insertMany() لتحديد ثلاثة مستندات مختلفة لتحديد مجموعة empDetails.

> db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Date_Of_Birth: "1995-09-26",
			e_mail: "[email protected]",
			phone: "9000012345"
		}
		{
			First_Name: "Rachel",
			Last_Name: "Christopher"
			Date_Of_Birth: "1990-02-16",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Date_Of_Birth: "1990-02-16",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)
{
	"acknowledged": true,
	"insertedIds": [
		ObjectId("5dd631f270fb13eec3963bed"),
		ObjectId("5dd631f270fb13eec3963bee"),
		ObjectId("5dd631f270fb13eec3963bef")
	]
}
>