Di MongoDB db.collection.insert()
metode memasukkan dokumen atau dokumen ke dalam koleksi.
collection
bagian adalah nama koleksi untuk memasukkan dokumen ke dalamnya.
Contoh
Berikut ini contoh penggunaan db.collection.insert()
untuk memasukkan beberapa dokumen ke dalam koleksi yang disebut pets
:
db.pets.insert([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
])
Hasil:
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
db.collection.insert()
metode mengembalikan objek yang berisi status operasi penyisipan.
Objek yang dikembalikan tergantung pada apakah satu dokumen dimasukkan atau beberapa dokumen.
- Ketika satu dokumen dimasukkan, ia mengembalikan
WriteResult
objek. - Ketika sebuah larik dokumen dimasukkan, ia mengembalikan
BulkWriteResult
objek.
Kita dapat melihat bahwa contoh di atas mengembalikan BulkWriteResult
obyek. Ini karena kami menambahkan array dokumen. Itu akan melakukan ini bahkan jika array hanya berisi satu elemen.
Sekarang jika kita menggunakan db.collection.find()
untuk melihat koleksi, kita akan melihat dokumen yang baru ditambahkan.
db.pets.find()
Hasil:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Dalam hal ini, tiga dokumen kami adalah satu-satunya yang ada dalam koleksi, jadi hanya dokumen-dokumen ini yang dikembalikan.
Namun, jika koleksinya besar, kami dapat menggunakan ID dokumen untuk mempersempit hasilnya menjadi hanya dokumen yang kami minati.
db.pets.find({_id: {$in: [1,2,3]}})
Hasil:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Bagaimana jika Koleksi Tidak Ada?
Jika koleksi tidak ada, itu dibuat, dan dokumen ditambahkan ke dalamnya.
Jika koleksi sudah ada, maka dokumen cukup ditambahkan ke dalamnya (asalkan _id
nilai tidak bertentangan dengan nilai yang sudah ada).
Saat saya membuat contoh ini, koleksinya tidak ada, jadi operasi penyisipan yang membuatnya.
_id
Bidang
_id
bidang adalah bidang pengenal unik di MongoDB.
Seperti yang ditunjukkan pada contoh sebelumnya, Anda dapat memberikan _id
Anda sendiri lapangan dalam dokumen. Jika ya, maka nilainya harus unik di dalam koleksi. Ini karena _id
your Anda kolom akan digunakan sebagai pengidentifikasi unik dokumen.
Berikut adalah contoh penyisipan dokumen tanpa memberikan _id
bidang.
db.pets.insert(
{ name: "Bruce", type: "Bat" }
)
Hasil:
WriteResult({ "nInserted" : 1 })
Perhatikan bahwa dalam kasus ini metode mengembalikan WriteResult
objek alih-alih BulkWriteResult
obyek. Ini karena kami menyisipkan satu dokumen (dan bukan dalam array).
Sekarang mari kita lihat lagi koleksinya.
db.pets.find()
Hasil:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : ObjectId("5fe323d837b49e0faf1af218"), "name" : "Bruce", "type" : "Bat" }
Kita dapat melihat bahwa dokumen baru kita termasuk dalam koleksi, dan memiliki _id
bidang dengan nilai yang dihasilkan secara otomatis.
Yang ordered
Parameter
db.collection.insert()
metode juga menerima ordered
parameter. Ini adalah parameter boolean dengan nilai default true
.
ordered
parameter menentukan apakah operasi penyisipan harus diurutkan atau tidak.
Jika ordered
disetel ke false
, dokumen disisipkan dalam format yang tidak berurutan dan dapat disusun ulang oleh mongod
untuk meningkatkan kinerja.
Dengan sisipan yang dipesan, jika terjadi kesalahan selama penyisipan salah satu dokumen, MongoDB mengembalikan kesalahan tanpa memproses dokumen yang tersisa dalam larik.
Dengan sisipan yang tidak berurutan, jika terjadi kesalahan selama penyisipan salah satu dokumen, MongoDB terus memasukkan dokumen yang tersisa ke dalam larik.
Informasi Lebih Lanjut
db.collection.insert()
metode ini juga menerima writeConcern
argumen, yang menjelaskan tingkat pengakuan yang diminta dari MongoDB untuk operasi penulisan.
Lihat dokumentasi MongoDB untuk db.collection.insert()
untuk informasi lebih lanjut.