MongoDB — создать документ

MongoDB — создать документ

MongoDB предоставляет следующие три метода для вставки документов в базу данных:

  1. insert()
  2. insertOne()
  3. 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"
  }
]}
])

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

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

Ваш электронный адрес не будет опубликован.


*