Эта глава рассказывает о том, как вставлять данные документа в 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 являются атомарными операциями на уровне одного документа.