MongoDB menyediakan insert()
metode (dan dua lainnya) untuk menambahkan dokumen ke database.
MongoDB menyediakan tiga metode berikut untuk memasukkan dokumen ke dalam database:
insert()
insertOne()
insertMany()
The insert()
Metode
insert()
metode memasukkan satu atau lebih dokumen ke dalam koleksi. Setiap dokumen disediakan sebagai parameter. Nama koleksi diawali dengan insert()
metode.
Berikut sintaks untuk menyisipkan satu dokumen:
db.collectionName.insert({ name: "value" })
Pada contoh di atas, dokumen terdiri dari { name: "value" }
. Ini adalah dokumen JSON. Dokumen JSON terdiri dari satu atau lebih pasangan nama/nilai, diapit dalam kurung kurawal {}
.
MongoDB menggunakan dokumen JSON untuk menyimpan data, oleh karena itu kami memasukkan dokumen dalam format ini.
Kami telah menggunakan metode ini sebelumnya ketika kami membuat database.
Mari tambahkan dokumen lain ke database kita:
db.artists.insert({ artistname: "Jorn Lande" })
Ini menyisipkan dokumen dengan { artistname: "Jorn Lande" }
sebagai isinya.
Sekarang, jika kita menelusuri artis koleksi, kita akan melihat dua dokumen (termasuk yang kita buat sebelumnya):
> db.artists.find() { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
Perhatikan bahwa MongoDB telah membuat _id
lapangan untuk dokumen. Jika Anda tidak menentukannya, MongoDB akan membuatnya untuk Anda. Namun, Anda dapat memberikan bidang ini saat melakukan penyisipan jika Anda lebih suka memiliki kontrol atas nilai _id
lapangan.
db.artists.insert({ _id: 1, artistname: "AC/DC" })
Hasil:
> db.artists.find() { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" }
_id
yang disediakan MongoDB adalah nilai ObjectId 12-byte. Itu terdiri dari nilai-nilai berikut;
- nilai 4-byte yang mewakili detik sejak zaman Unix,
- pengidentifikasi mesin 3 byte,
- id proses 2 byte, dan
- penghitung 3 byte, dimulai dengan nilai acak.
Buat Banyak Dokumen
Anda dapat menyisipkan beberapa dokumen dalam satu insert()
metode.
Dalam contoh ini, kami menyisipkan tiga dokumen:
db.artists.insert( [ { artistname: "The Kooks" }, { artistname: "Bastille" }, { artistname: "Gang of Four" } ] )
Perhatikan bahwa dokumen disediakan sebagai larik. Dokumen diapit dalam tanda kurung siku []
, dan dipisahkan dengan koma.
Menjalankan kode di atas menghasilkan pesan berikut:
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
Dokumen Tersemat
Sebuah dokumen dapat berisi dokumen lain, larik, dan larik dokumen.
Anda juga dapat memberikan beberapa pasangan nama/nilai dalam dokumen dengan memisahkannya dengan koma.
db.artists.insert({ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] })
Hasil:
WriteResult({ "nInserted" : 1 })
Parameter
insert()
metode menerima parameter berikut.
document
writeConcern
ordered
true
, MongoDB akan melakukan penyisipan dokumen secara berurutan dalam larik, dan jika terjadi kesalahan dengan salah satu dokumen, MongoDB akan kembali tanpa memproses dokumen yang tersisa dalam larik.
Jika nilainya diatur ke false
, MongoDB akan melakukan penyisipan yang tidak berurutan, dan jika terjadi kesalahan pada salah satu dokumen, dokumen yang tersisa dalam larik akan terus diproses.
The insertOne()
Metode
Anda juga dapat menggunakan insertOne()
metode untuk menyisipkan satu dokumen ke dalam koleksi:
db.musicians.insertOne({ _id: 1, name: "Ian Gillan", instrument: "Vocals" })
Di sini, kami telah menentukan koleksi yang tidak ada. Seperti halnya insert()
metode, koleksi yang ditentukan akan dibuat jika belum ada.
Anda akan melihat bahwa outputnya berbeda dengan saat Anda menggunakan insert()
metode:
{ "acknowledged" : true, "insertedId" : 1 }
Dokumen Tersemat
Seperti insert()
, Anda dapat menyisipkan dokumen dan susunan dokumen yang disematkan:
db.artists.insertOne({ artistname : "Miles Davis", albums : [ { album : "Kind of Blue", year : 1959, genre : "Jazz" }, { album : "Bitches Brew", year : 1970, genre : "Jazz" } ] })
Hasil:
{ "acknowledged" : true, "insertedId" : ObjectId("578214f048ef8c6b3ffb0159") }
The insertMany()
Metode
Seperti namanya, Anda dapat menggunakan insertMany()
untuk menyisipkan banyak dokumen:
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 }, ] )
Sekali lagi, output saat menggunakan insertMany()
berbeda dengan jika Anda menyisipkan beberapa dokumen menggunakan insert()
metode:
{ "acknowledged" : true, "insertedIds" : [ 2, 3, 4, 5, 6, 7, 8 ] }
Dokumen Tersemat
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" } ] } ])
Hasil:
{ "acknowledged" : true, "insertedIds" : [ ObjectId("578217c248ef8c6b3ffb015a"), ObjectId("578217c248ef8c6b3ffb015b") ] }