MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

5 Cara Memasukkan Dokumen di MongoDB

MongoDB menyediakan banyak cara untuk menyisipkan dokumen ke dalam koleksi.

Berikut adalah 5 cara untuk menyisipkan dokumen ke dalam koleksi saat menggunakan mongo shell.

The insertOne() Metode

insertOne() metode menyisipkan satu dokumen ke dalam koleksi.

Nama lengkapnya adalah db.collection.insertOne() , di mana collection adalah nama koleksi untuk memasukkan dokumen ke dalamnya.

Berikut adalah contoh memasukkan dokumen ke dalam koleksi yang disebut pets :

db.pets.insertOne( { 
    name: "Scratch", 
    type: "Cat" 
    } )

Hasil:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("5fe2d15637b49e0faf1af214")
}

db.collection.insertOne() metode mengembalikan dokumen yang berisi:

  • Boolean acknowledged sebagai true jika operasi berjalan dengan masalah tulis atau false jika masalah penulisan dinonaktifkan.
  • Bidang insertedId dengan _id nilai dokumen yang disisipkan.

The insertMany() Metode

insertMany() metode ini mirip dengan insertOne() , kecuali memasukkan beberapa dokumen ke dalam koleksi.

Juga dengan cara yang mirip dengan insertOne() , nama lengkapnya adalah db.collection.insertMany() , di mana collection adalah nama koleksi untuk memasukkan dokumen ke dalamnya. Ini berlaku untuk semua metode yang tercantum dalam artikel ini.

Berikut ini contoh penggunaan db.collection.insertMany() untuk memasukkan beberapa dokumen ke dalam koleksi yang disebut pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Hasil:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

db.collection.insertMany() metode mengembalikan dokumen yang berisi:

  • Boolean acknowledged sebagai true jika operasi berjalan dengan masalah tulis atau false jika masalah penulisan dinonaktifkan.
  • Array _id nilai untuk setiap dokumen yang berhasil dimasukkan.

The insert() Metode

insert() metode ini seperti kombinasi insertOne() dan insertMany() . Ini memungkinkan Anda untuk memasukkan satu dokumen, atau beberapa dokumen ke dalam koleksi.

Berikut ini contoh penggunaan db.collection.insert() untuk menyisipkan satu dokumen:

db.pets.insert(
    { name: "Bruce", type: "Bat" }
    )

Hasil:

WriteResult({ "nInserted" : 1 })

Saat satu dokumen dimasukkan, db.collection.insert() mengembalikan WriteResult obyek. Ketika sebuah array dokumen dimasukkan, ia mengembalikan BulkWriteResult objek.

Berikut ini contoh penggunaan db.collection.insert() untuk menyisipkan banyak dokumen.

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" : [ ]
})

Seperti disebutkan, sebuah BulkWriteResult objek dikembalikan saat memasukkan array dokumen.

The bulkWrite() Metode

bulkWrite() metode ini memungkinkan Anda untuk melakukan operasi penulisan massal.

Sebenarnya, insertMany() sudah melakukan operasi penyisipan massal. Sama dengan insert() saat memasukkan array dokumen. Tapi bulkWrite() memungkinkan Anda melakukan operasi penyisipan, pembaruan, dan penghapusan massal, semuanya dari satu panggilan metode.

Contoh:

db.pets.bulkWrite([
    { insertOne: { "document": { "_id": 1, "name": "Bubbles", "type": "Fish" }}},
    { insertOne: { "document": { "_id": 2, "name": "Wag", "type": "Dog" }}},
    { updateOne : {
        "filter" : { "_id" : 3 },
        "update" : { $set : { "name" : "Fluffy", "type" : "Cat" } },
        "upsert" : true
    } },
    { replaceOne : {
        "filter" : { "_id" : 4 },
        "replacement" : { "name" : "Bite", "type" : "Dog", "weight": 5 },
        "upsert" : true
    } }
])

Hasil:

{
	"acknowledged" : true,
	"deletedCount" : 0,
	"insertedCount" : 2,
	"matchedCount" : 0,
	"upsertedCount" : 2,
	"insertedIds" : {
		"0" : 1,
		"1" : 2
	},
	"upsertedIds" : {
		"2" : 3,
		"3" : 4
	}
}

Dalam hal ini, koleksi sebenarnya tidak ada (saya menghapusnya mengikuti contoh sebelumnya), jadi satu-satunya dokumen yang sekarang ada di dalam koleksi adalah yang ditentukan dalam contoh ini.

Mari kita lihat koleksinya.

db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Bubbles", "type" : "Fish" }
{ "_id" : 2, "name" : "Wag", "type" : "Dog" }
{ "_id" : 3, "name" : "Fluffy", "type" : "Cat" }
{ "_id" : 4, "name" : "Bite", "type" : "Dog", "weight" : 5 }

Seperti yang diharapkan, keempat dokumen dimasukkan.

Operasi Upser

Ini membawa kita ke metode kelima untuk memasukkan dokumen ke dalam koleksi di MongoDB – operasi upsert.

Ini lebih merupakan metode bersyarat untuk memasukkan dokumen. Upsert adalah opsi yang dapat Anda gunakan pada operasi pembaruan. Itu hanya menyisipkan dokumen baru jika dokumen yang ditentukan belum ada. Jika ada, maka dokumen asli diperbarui (dan tidak ada dokumen yang dimasukkan).

Kami telah melihat contoh upsert. Pada contoh sebelumnya, kami menetapkan "upsert" : true saat melakukan updateOne dan replaceOne operasi. Itu mengakibatkan dua dokumen dimasukkan, karena koleksi tidak berisi dokumen yang cocok dengan kriteria filternya.

Ini contoh lain dari upser. Kali ini, kita akan menggunakannya di updateOne() metode.

db.pets.updateOne( 
    { name: "Harry" },
    { $set: { type: "Hamster" } },
    { upsert: true }
    )

Hasil:

{
	"acknowledged" : true,
	"matchedCount" : 0,
	"modifiedCount" : 0,
	"upsertedId" : ObjectId("5fe3dc44d991410169410524")
}

Di sini, kami ingin mengatur semua hewan peliharaan bernama Harry menjadi hamster. Tapi tidak ada hewan peliharaan bernama harry, jadi upsert dilakukan.

Metode berikut menerima upsert parameter:

  • update()
  • updateOne()
  • updateMany()
  • findAndModify()
  • findOneAndUpdate()
  • findOneAndReplace()

Oleh karena itu, ketika upsert: true ditentukan, metode ini akan melakukan operasi upsert saat mencoba memperbarui dokumen yang tidak ada.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data MongoDB - Anotasi @CreatedDate tidak berfungsi saat menggunakan dengan bidang Id khusus

  2. Bagaimana cara mengisi entitas bersarang di luwak?

  3. simpan luwak vs sisipkan vs buat

  4. Dokumen Baca dan sisipkan dengan penguncian/transaksi di nodejs dengan mongodb

  5. Menggunakan S3 sebagai database vs. database (mis. MongoDB)