MongoDB - Chèn tài liệu
Trong chương này, chúng ta sẽ học cách chèn tài liệu trong MongoDB collection.
Phương thức insert ()
Để chèn dữ liệu vào bộ sưu tập MongoDB, bạn cần sử dụng MongoDB's insert() hoặc là save() phương pháp.
Cú pháp
Cú pháp cơ bản của insert() lệnh như sau:
>db.COLLECTION_NAME.insert(document)
Thí dụ
> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "MongoDB Overview",
... description: "MongoDB is no sql database",
... by: "tutorials point",
... url: "http://www.tutorialspoint.com",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>
Đây mycollà tên bộ sưu tập của chúng tôi, như đã tạo trong chương trước. Nếu bộ sưu tập không tồn tại trong cơ sở dữ liệu, thì MongoDB sẽ tạo bộ sưu tập này và sau đó chèn tài liệu vào đó.
Trong tài liệu được chèn, nếu chúng ta không chỉ định tham số _id, thì MongoDB sẽ gán một ObjectId duy nhất cho tài liệu này.
_id là số thập lục phân 12 byte duy nhất cho mọi tài liệu trong bộ sưu tập. 12 byte được chia như sau:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
Bạn cũng có thể truyền một mảng tài liệu vào phương thức insert () như hình dưới đây:.
> db.createCollection("post")
> db.post.insert([
{
title: "MongoDB Overview",
description: "MongoDB is no SQL database",
by: "tutorials point",
url: "http://www.tutorialspoint.com",
tags: ["mongodb", "database", "NoSQL"],
likes: 100
},
{
title: "NoSQL Database",
description: "NoSQL database doesn't have tables",
by: "tutorials point",
url: "http://www.tutorialspoint.com",
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" : [ ]
})
>
Để chèn tài liệu, bạn có thể sử dụng db.post.save(document)cũng thế. Nếu bạn không chỉ định_id trong tài liệu sau đó save() phương pháp sẽ hoạt động giống như insert()phương pháp. Nếu bạn chỉ định _id thì nó sẽ thay thế toàn bộ dữ liệu của tài liệu chứa _id như được chỉ định trong phương thức save ().
Phương thức insertOne ()
Nếu bạn chỉ cần chèn một tài liệu vào một bộ sưu tập, bạn có thể sử dụng phương pháp này.
Cú pháp
Cú pháp cơ bản của lệnh insert () như sau:
>db.COLLECTION_NAME.insertOne(document)
Thí dụ
Ví dụ sau tạo một bộ sưu tập mới có tên là empDetails và chèn một tài liệu bằng phương thức 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")
}
>
Phương thức insertMany ()
Bạn có thể chèn nhiều tài liệu bằng phương thức insertMany (). Đối với phương pháp này, bạn cần chuyển một mảng tài liệu.
Thí dụ
Ví dụ sau chèn ba tài liệu khác nhau vào bộ sưu tập empDetails bằng phương thức insertMany ().
> 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")
]
}
>