Эта глава рассказывает о том, как вставлять данные документа в MongoDB с помощью оболочки mongo.

Вставка одного документа

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

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

Примечание: ObjectId - встроенный генератор уникальных идентификаторов в MongoDB, используемый для генерации ID.

Пример: Вставим документ в коллекцию inventory:

db.inventory.insertOne(
   { item: "холст", qty: 100, tags: ["хлопок"], size: { h: 28, w: 35.5, uom: "см" } }
)

Результат:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}

Если вставка прошла успешно, возвращает основной ключ. Поле insertedId - это автоматически созданный уникальный идентификатор MongoDB. Если коллекция inventory не существует, она создается автоматически.

Запрос данных вставленного документа:

> db.inventory.find( { item: "холст" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "холст", "qty" : 100, "tags" : [ "хлопок" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "см" } }

Используя метод find, укажем условие запроса для поиска данных документа, где item равно "холст".

Вставка нескольких документов

Метод db.collection.insertMany() может вставить несколько документов в коллекцию.

Пример: Вставим три документа, передав массив в метод insertMany:

db.inventory.insertMany([
   { item: "журнал", qty: 25, tags: ["пустой", "красный"], size: { h: 14, w: 21, uom: "см" } },
   { item: "коврик", qty: 85, tags: ["серый"], size: { h: 27.9, w: 35.5, uom: "см" } },
   { item: "коврик для мыши", qty: 25, tags: ["гель", "синий"], size: { h: 19, w: 22.85, uom: "см" } }
])

Значение возврата:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("609bf30ffc901345cafc438b"),
		ObjectId("609bf30ffc901345cafc438c"),
		ObjectId("609bf30ffc901345cafc438d")
	]
}

Возвращает идентификаторы только что вставленных трех документов.

Поведение вставки

Создание коллекции

В MongoDB нет необходимости заранее создавать коллекцию. При первичной вставке данных, если коллекция не существует, она автоматически создается.

Поле _id

В MongoDB каждый документ, хранящийся в коллекции, имеет уникальное поле _id, действующее как первичный ключ. Если вставленный документ пропускает поле _id, драйвер MongoDB автоматически генерирует ObjectId для поля _id.

Атомарность

Все операции записи в MongoDB являются атомарными операциями на уровне одного документа.