Предыдущая часть: “MongoDB : типы данных”
Метод insert()
Для вставки данных в коллекцию MongoDB используется метод insert()
или save()
.
Синтаксис
Ниже представлен основной синтаксис команды insert()
:
>db.COLLECTION_NAME.insert(document)
Пример
> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "MongoDB Overview",
... description: "MongoDB is no sql database",
... by: "NOP",
... url: "https://nuancesprog.ru/",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>
В данном примере mycol
— имя коллекции, созданной в предыдущем разделе. Если в базе данных нет этой коллекции, MongoDB создаст ее и вставит в нее документ.
Если во вставленном документе не указан параметр _id
, MongoDB присваивает ему уникальный ObjectId
.
_id
— это 12-ти байтовое шестнадцатеричное число, уникальное для каждого документа коллекции. 12 байтов подразделяются следующим образом: 4 байта — метка времени; 3 байта — id компьютера; 2 байта — id процесса на сервере MongoBD; 3 байта — простое инкрементное значение.
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
В метод insert()
можно также передать массив документов, как показано ниже:
> db.createCollection("post")
> db.post.insert([
{
title: "MongoDB Overview",
description: "MongoDB is no SQL database",
by: "NOP",
url: "https://nuancesprog.ru/",
tags: ["mongodb", "database", "NoSQL"],
likes: 100
},
{
title: "NoSQL Database",
description: "NoSQL database doesn't have tables",
by: "NOP",
url: "https://nuancesprog.ru/",
tags: ["mongodb", "database", "NoSQL"],
likes: 20,
comments: [
{
user:"user1",
message: "My first comment",
dateCreated: new Date(2013,11,10,2,35),
like: 0
}
]
}
])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
>
Вставить документ можно командой db.post.save(document)
. Если в документе не указан _id
, метод save()
cработает также, как и insert()
. Если же _id
задан, то произойдет замена всех данных документа, содержащего _id
, как указано в методе save()
.
Метод insertOne()
insertOne()
предназначен для вставки в коллекцию только одного документа.
Синтаксис
Основной синтаксис команды insert()
:
>db.COLLECTION_NAME.insertOne(document)
Пример
Создадим новую коллекции с именем empDetails
и вставим документ с помощью метода insertOne()
:
> db.createCollection("empDetails")
{ "ok" : 1 }
> db.empDetails.insertOne(
{
First_Name: "Radhika",
Last_Name: "Sharma",
Date_Of_Birth: "1995-09-26",
e_mail: "[email protected]",
phone: "9848022338"
})
{
"acknowledged" : true,
"insertedId" : ObjectId("5dd62b4070fb13eec3963bea")
}
>
Метод insertMany()
Метод insertMany()
позволяет вставить несколько документов. Ваша задача — передать в него массив документов.
Пример
С помощью метода insertMany()
вставим 3 разных документа в коллекцию empDetails
.
> db.empDetails.insertMany(
[
{
First_Name: "Radhika",
Last_Name: "Sharma",
Date_Of_Birth: "1995-09-26",
e_mail: "[email protected]",
phone: "9000012345"
},
{
First_Name: "Rachel",
Last_Name: "Christopher",
Date_Of_Birth: "1990-02-16",
e_mail: "[email protected]",
phone: "9000054321"
},
{
First_Name: "Fathima",
Last_Name: "Sheik",
Date_Of_Birth: "1990-02-16",
e_mail: "[email protected]",
phone: "9000054321"
}
]
)
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5dd631f270fb13eec3963bed"),
ObjectId("5dd631f270fb13eec3963bee"),
ObjectId("5dd631f270fb13eec3963bef")
]
}
>
Читайте также:
- Как определить содержимое ZIP-файла без скачивания
- Как определить цели разработчику программного обеспечения
- Несколько распространенных вопросов об ElasticSearch
Читайте нас в Telegram, VK и Яндекс.Дзен