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

Основы MongoDB

Документация по MongoDB на высоком уровне

Вставка документа 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://ru.oldtoolbag.com",
... tags: ['mongodb', 'база данных', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>

Это имя коллекции, созданной нами в предыдущей главе mycol . Если не указан параметр _id в вставляемом документе, MongoDB分配 ему уникальный ObjectId.

Если в базе данных не существует этой коллекции, MongoDB создаст её и вставит документ в неё.

_id является 12-битным шестнадцатеричным числом и уникален для каждого документа в集合е. 12 байт разбиты следующим образом:

_id: ObjectId(4 байта временной метки, 3 байта идентификатора машины, 2 байта идентификатора процесса, 3 байта инкрементатора)

Можно передать массив документов в метод insert() следующим образом:

> db.createCollection("post")
> db.post.insert([
	{
		title: "Обзор MongoDB",
		description: "MongoDB не является SQL базой данных",
		by: "Основной курс",
		url: "http://ru.oldtoolbag.com",
		tags: ["mongodb", "база данных", "NoSQL"],
		likes: 100
	}
	{
	title: "NoSQL Database",
	description: "NoSQL базы данных не имеют таблиц",
	by: "Основной курс",
	url: "http://ru.oldtoolbag.com",
	tags: ["mongodb", "база данных", "NoSQL"],
	likes: 20,
	comments: [
		{
			user:"пользователь1",
			message: "Мой первый комментарий",
			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, он заменит всю информацию документа, содержащую _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")
	]
}
>