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: "NOP",
... url: "https://nuancesprog.ru/",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>

В данном примере mycol—  имя коллекции, созданной в предыдущем разделе. Если в базе данных нет этой коллекции, MongoDB создаст ее и вставит в нее документ. 

Если во вставленном документе не указан параметр _id, MongoDB присваивает ему уникальный ObjectId

_id  —  это 12-ти байтовое шестнадцатеричное число, уникальное для каждого документа коллекции. 12 байтов подразделяются следующим образом: 4 байта  —  метка времени; 3 байта  —  id компьютера; 2 байта  —  id процесса на сервере MongoBD; 3 байта  —  простое инкрементное значение. 

_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 is no SQL database",
		by: "NOP",
		url: "https://nuancesprog.ru/",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 100
	},
	{
	title: "NoSQL Database",
	description: "NoSQL database doesn't have tables",
	by: "NOP",
	url: "https://nuancesprog.ru/",
	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() cработает также, как и insert(). Если же _id задан, то произойдет замена всех данных документа, содержащего _id, как указано в методе save()

Метод insertOne()

insertOne() предназначен для вставки в коллекцию только одного документа. 

Синтаксис 

Основной синтаксис команды insert()

>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() вставим 3 разных документа в коллекцию 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")
	]
}
>

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статьяMongoDB: типы данных 
Следующая статьяЯзык С: переменные