

MongoDB предоставляет следующие три метода для вставки документов в базу данных:
- insert()
- insertOne()
- insertMany()
Метод insert()
Метод insert() вставляет один или несколько документов в коллекцию. Каждый документ предоставляется в качестве параметра. Имя коллекции добавляется перед методом insert().
Вот синтаксис для вставки одного документа:
db.collectionName.insert({ name: "value" })
В приведенном выше примере документ состоит из {name: "value"}. Это документ JSON. Документы JSON состоят из одной или нескольких пар имя/значение, заключенных в фигурные скобки {}.
MongoDB использует документы JSON для хранения данных, поэтому мы вставляем документы в этом формате.
Мы уже использовали этот метод ранее, когда мы создали базу данных.
Давайте добавим еще один документ в нашу базу данных:
db.artists.insert({ artistname: "Jorn Lande" })
Это вставляет документ с {artistname: "Jorn Lande"} в качестве его содержимого.
Теперь, если мы будем искать коллекцию артистов, мы увидим два документа (включая тот, который мы создали ранее):
> db.artists.find() { "_id" : ObjectId("5780fbf948dr8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48dr8c6b3ffb014a"), "artistname" : "Jorn Lande" }
Обратите внимание, что MongoDB создал поле _id для документов. Если вы не укажете его, MongoDB создаст его за вас. Однако вы можете предоставить это поле при выполнении вставки, если вы предпочитаете контролировать значение поля _id.
Создать несколько документов
Вы можете вставить несколько документов в один метод insert().
В этом примере мы вставляем три документа:
db.artists.insert( [ { artistname: "The Kooks" }, { artistname: "Bastille" }, { artistname: "Gang of Four" } ] )
Обратите внимание, что документы предоставляются в виде массива. Документы заключены в квадратные скобки [] и разделены запятыми.
Вложенные документы
Документ может содержать другие документы, массивы и массивы документов.
Вы также можете указать несколько пар имя / значение в документе, разделяя их запятой.
db.artists.insert({ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] })
Параметры
Метод insert() принимает следующие параметры:
Параметр | Тип | Описание |
---|---|---|
document | document или array | Документ или массив документов для вставки в коллекцию (как в приведенных выше примерах). |
writeConcern | document | Необязательный параметр. Это документ, выражающий озабоченность по поводу записи. Задача записи описывает уровень подтверждения, запрошенный у MongoDB для операций записи в автономный mongod или в наборы реплик или в сегментированные кластеры. |
ordered | boolean | Необязательный параметр. Если установлено значение true, MongoDB выполнит упорядоченную вставку документов в массив, а если произойдет ошибка с одним из документов, MongoDB вернется без обработки оставшихся документов в массиве.
Если задано значение false, MongoDB выполнит неупорядоченную вставку, и если с одним из документов произойдет ошибка, остальные документы в массиве продолжат обрабатываться. |
Метод insertOne()
Вы также можете использовать метод insertOne() для вставки одного документа в коллекцию:
db.musicians.insertOne({ _id: 1, name: "Ian Gillan", instrument: "Vocals" })
Здесь мы указали несуществующую коллекцию. Как и в случае метода insert(), указанная коллекция будет создана, если она еще не существует.
Вы можете заметить, что вывод отличается от использования метода insert():
{ "acknowledged" : true, "insertedId" : 1 }
Вложенные документы
Как и в случае с insert(), вы можете вставлять вложенные документы и массивы документов:
db.artists.insertOne({ artistname : "Miles Davis", albums : [ { album : "Kind of Blue", year : 1959, genre : "Jazz" }, { album : "Bitches Brew", year : 1970, genre : "Jazz" } ] })
Метод insertMany()
Как следует из названия, вы можете использовать insertMany() для вставки нескольких документов:
db.musicians.insertMany([ { _id: 2, name: "Ian Paice", instrument: "Drums", born: 1948 }, { _id: 3, name: "Roger Glover", instrument: "Bass", born: 1945 }, { _id: 4, name: "Steve Morse", instrument: "Guitar", born: 1954 }, { _id: 5, name: "Don Airey", instrument: "Keyboards", born: 1948 }, { _id: 6, name: "Jeff Martin", instrument: "Vocals", born: 1969 }, { _id: 7, name: "Jeff Burrows", instrument: "Drums", born: 1968 }, { _id: 8, name: "Stuart Chatwood", instrument: "Bass", born: 1969 }, ])
Опять же, вывод при использовании insertMany() отличается от того, если бы вы вставили несколько документов с помощью метода insert().
Вложенные документы
db.artists.insertMany([ { artistname : "Robben Ford", albums : [ { album : "Bringing it Back Home", year : 2013, genre : "Blues" }, { album : "Talk to Your Daughter", year : 1988, genre : "Blues" } ]}, { artistname : "Snoop Dogg", albums : [ { album : "Tha Doggfather", year : 1996, genre : "Rap" }, { album : "Reincarnated", year : 2013, genre : "Reggae" } ]} ])



Оставить комментарий