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

Insertion de documents MongoDB

Dans ce chapitre, nous apprendrons à insérer des documents dans une collection MongoDB.

insert()方法

Pour insérer des données dans une collection MongoDB, vous devez utiliser MongoDBinsert() ou save()méthode.

语法

insert()La syntaxe de base des commandes est la suivante-

> db.COLLECTION_NAME.insert(document)

Exemple en ligne

> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "Vue d'ensemble MongoDB",
... description: "MongoDB est une base de données sql",
... by: "Tutoriel de base",
... url: "https://fr.oldtoolbag.com",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>

C'est le nom de l'ensemble que nous avons créé dans le chapitre précédent mycol . Si l'ensemble n'existe pas dans la base de données, MongoDB crée cet ensemble puis insère le document.

Dans le document inséré, si le paramètre _id n'est pas spécifié, MongoDB attribue un ObjectId unique à ce document.

_id est12Les nombres hexadécimaux des octets, pour chaque document dans l'ensemble, sont uniques.12Les octets sont divisés comme suit :

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

Vous pouvez également passer un tableau de documents à la méthode insert() comme suit :

> db.createCollection("post")
> db.post.insert([
	{
		title: "Vue d'ensemble MongoDB",
		description: "MongoDB n'est pas une base de données SQL",
		by: "基础教程",
		url: "http://fr.oldtoolbag.com",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 100
	}
	{
	title: "NoSQL Database"
	description: "NoSQL数据库没有表",
	by: "基础教程",
	url: "http://fr.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,则 save()方法将与insert()方法相同。如果指定_id,则它将替换save()方法中指定的包含_id的文档的整个数据。

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")
	]
}
>