MongoDB: метод db.collection.insert ()
db.collection.insert
Метод db.collection.insert () используется для вставки нового документа в коллекцию.
Синтаксис:
db.collection.insert ()
Параметры:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
документ | Документ или массив документов для вставки в коллекцию. | необходимые | документ или массив |
writeConcern | Документ, выражающий озабоченность по поводу записи. Не используйте функцию записи по умолчанию. | Необязательный | документ |
приказал | Если значение равно true, выполнить упорядоченную вставку документов в массив, и если с одним из документов произойдет ошибка, MongoDB вернется без обработки оставшихся документов в массиве. Если false, выполните неупорядоченную вставку, и если с одним из документов произойдет ошибка, продолжите обработку оставшихся документов в массиве. По умолчанию true. | Необязательный | логический |
Возвращает:
- Объект WriteResult для одиночных вставок.
- Объект BulkWriteResult для массовых вставок.
Пример: вставка документа без указания an_idField
В следующем примере документ, переданный в метод insert (), не содержит поле_id:
db.invoice.insert( { inv_no: "I00001", inv_date: "10/10/2012" } );
Выход:
> db.invoice.insert ({inv_no: "I00001", inv_date: "10/10/2012"}); WriteResult ({"nInserted": 1})
Во время вставки mongod создаст поле _id и присвоит ему уникальное значение ObjectId, что подтверждается вставленным документом. Чтобы увидеть вставленный документ, см. Следующее утверждение.
> db.invoice.find();
{ "_id" : ObjectId("567554d2f61afaaed2aae48f"), "inv_no" : "I00001", "inv_date" : "10/10/2012" }
Пример: вставка документа с указанием an_idField
В следующем примере документ, передаваемый методу insert (), включает поле_id. Значение of_idmust должно быть уникальным в коллекции, чтобы избежать ошибки дублирования ключа.
db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );
Выход:
> db.invoice.insert ({_id: 901, inv_no: "I00001", inv_date: "10/10/2012"}); WriteResult ({"nInserted": 1})
Операция вставляет следующий документ в коллекцию товаров:
{ "_id" : 901, "inv_no" : "I00001", "inv_date" : "10/10/2012" }
Пример: вставка нескольких документов
В следующем примере выполняется массовая вставка трех документов путем передачи массива документов в метод insert (). Документы в массиве не должны иметь одинаковые поля. Например, первый документ в массиве имеет поля an_id и aunitfield. Но второй и третий документы не содержат an_idfield, mongod создаст the_idfield для второго и третьего документов во время вставки:
db.orders.insert(
[
{ _id: 15, ord_no: 2001, qty: 200, unit: "doz" },
{ ord_no: 2005, qty: 320 },
{ ord_no: 2008, qty: 250, rate:85 }
]
);
Выход:
BulkWriteResult ({ "writeErrors": [], "writeConcernErrors": [], "nInserted": 3, "nUpserted": 0, "nMatched": 0, "nModified": 0, "nRemoved": 0, "upserted": [] })
В операцию вставлены следующие три документа:
{ "_id" : 15, "ord_no" : 2001, "qty" : 200, "unit" : "doz" }
{ "_id" : ObjectId("56755896f61afaaed2aae490"), "ord_no" : 2005, "qty" : 320 }
{ "_id" : ObjectId("56755896f61afaaed2aae491"), "ord_no" : 2008, "qty" : 250, "rate" : 85 }
Получить данные о ресторанах здесь
Поведение
Сейф пишет
Метод insert () использует команду вставки, которая использует запись по умолчанию. Чтобы указать другое значение записи, включите значение записи в параметр options.
Создать коллекцию
Если коллекция не существует, метод insert () создаст коллекцию.
_id Field
Если в документе не указано поле _id, MongoDB добавит поле _id и назначит уникальный ObjectId для документа перед вставкой. Большинство драйверов создают ObjectId и вставляют поле _id, но mongod создает и заполняет _id, если драйвер или приложение этого не делают.
Если документ содержит поле _id, значение _id должно быть уникальным в коллекции, чтобы избежать ошибки повторяющегося ключа.
Предыдущий: метод db.collection.group ()
Далее: метод db.collection.isCapped ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования