Python MongoDB - Panduan Cepat
Pymongo adalah distribusi python yang menyediakan alat untuk bekerja dengan MongoDB, ini adalah cara yang paling disukai untuk berkomunikasi dengan database MongoDB dari python.
Instalasi
Untuk menginstal pymongo pertama-tama pastikan Anda telah menginstal python3 (bersama dengan PIP) dan MongoDB dengan benar. Kemudian jalankan perintah berikut.
C:\WINDOWS\system32>pip install pymongo
Collecting pymongo
Using cached https://files.pythonhosted.org/packages/cb/a6/b0ae3781b0ad75825e00e29dc5489b53512625e02328d73556e1ecdf12f8/pymongo-3.9.0-cp37-cp37m-win32.whl
Installing collected packages: pymongo
Successfully installed pymongo-3.9.0
Verifikasi
Setelah Anda menginstal pymongo, buka dokumen teks baru, tempel baris berikut di dalamnya dan, simpan sebagai test.py.
import pymongo
Jika Anda telah menginstal pymongo dengan benar, jika Anda menjalankan test.py seperti yang ditunjukkan di bawah ini, Anda tidak akan mendapatkan masalah apa pun.
D:\Python_MongoDB>test.py
D:\Python_MongoDB>
Tidak seperti database lain, MongoDB tidak menyediakan perintah terpisah untuk membuat database.
Secara umum perintah use digunakan untuk memilih / beralih ke database tertentu. Perintah ini pada awalnya memverifikasi apakah database yang kita tentukan ada, jika demikian, terhubung dengannya. Jika database, kita tentukan dengan perintah use tidak ada database baru akan dibuat.
Oleh karena itu, Anda dapat membuat database di MongoDB menggunakan file Use perintah.
Sintaksis
Sintaks dasar use DATABASE pernyataannya adalah sebagai berikut -
use DATABASE_NAME
Contoh
Perintah berikut membuat database bernama di mydb.
>use mydb
switched to db mydb
Anda dapat memverifikasi kreasi Anda dengan menggunakan perintah db , ini menampilkan database saat ini.
>db
mydb
Membuat Database Menggunakan Python
Untuk terhubung ke MongoDB menggunakan pymongo, Anda perlu mengimpor dan membuat MongoClient, lalu Anda dapat langsung mengakses database yang perlu Anda buat di atribut passion.
Contoh
Contoh berikut membuat database di MangoDB.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydb']
print("Database created........")
#Verification
print("List of databases after creating new one")
print(client.list_database_names())
Keluaran
Database created........
List of databases after creating new one:
['admin', 'config', 'local', 'mydb']
Anda juga dapat menentukan nama port dan host saat membuat MongoClient dan dapat mengakses database dengan gaya kamus.
Contoh
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydb']
print("Database created........")
Keluaran
Database created........
Koleksi di MongoDB menyimpan sekumpulan dokumen, ini analog dengan tabel di database relasional.
Anda dapat membuat koleksi menggunakan createCollection()metode. Metode ini menerima nilai String yang mewakili nama koleksi yang akan dibuat dan parameter opsi (opsional).
Dengan menggunakan ini, Anda dapat menentukan yang berikut -
The ukuran dari koleksi.
The max sejumlah dokumen diperbolehkan dalam koleksi ditutup.
Apakah koleksi yang kita buat harus berupa koleksi terbatas (koleksi ukuran tetap).
Apakah koleksi yang kita buat harus diindeks otomatis.
Sintaksis
Berikut sintaks untuk membuat koleksi di MongoDB.
db.createCollection("CollectionName")
Contoh
Metode berikut membuat koleksi bernama ExampleCollection.
> use mydb
switched to db mydb
> db.createCollection("ExampleCollection")
{ "ok" : 1 }
>
Demikian pula, berikut ini adalah kueri yang membuat koleksi menggunakan opsi metode createCollection ().
>db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
{ "ok" : 1 }
>
Membuat Koleksi Menggunakan Python
Contoh python berikut terhubung ke database di MongoDB (mydb) dan, membuat koleksi di dalamnya.
Contoh
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydb']
#Creating a collection
collection = db['example']
print("Collection created........")
Keluaran
Collection created........
Anda dapat menyimpan dokumen ke dalam MongoDB menggunakan metode insert () . Metode ini menerima dokumen JSON sebagai parameter.
Sintaksis
Berikut ini adalah sintaks dari metode penyisipan.
>db.COLLECTION_NAME.insert(DOCUMENT_NAME)
Contoh
> use mydb
switched to db mydb
> db.createCollection("sample")
{ "ok" : 1 }
> doc1 = {"name": "Ram", "age": "26", "city": "Hyderabad"}
{ "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
> db.sample.insert(doc1)
WriteResult({ "nInserted" : 1 })
>
Demikian pula, Anda juga dapat menyisipkan beberapa dokumen menggunakan insert() metode.
> use testDB
switched to db testDB
> db.createCollection("sample")
{ "ok" : 1 }
> data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" },
{"_id": "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
]
[
{"_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad"},
{"_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore"},
{"_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai"}
]
> db.sample.insert(data)
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
>
Membuat Koleksi Menggunakan Python
Pymongo menyediakan metode bernama insert_one () untuk memasukkan dokumen ke MangoDB. Untuk metode ini, kita perlu mengirimkan dokumen dalam format kamus.
Contoh
Contoh berikut menyisipkan dokumen dalam contoh koleksi bernama.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydb']
#Creating a collection
coll = db['example']
#Inserting document into a collection
doc1 = {"name": "Ram", "age": "26", "city": "Hyderabad"}
coll.insert_one(doc1)
print(coll.find_one())
Keluaran
{'_id': ObjectId('5d63ad6ce043e2a93885858b'), 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
Untuk memasukkan beberapa dokumen ke dalam MongoDB menggunakan pymongo, Anda perlu menjalankan metode insert_many ().
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydb']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
print(res.inserted_ids)
Keluaran
Data inserted ......
['101', '102', '103']
Anda dapat membaca / mengambil dokumen yang disimpan dari MongoDB menggunakan find()metode. Metode ini mengambil dan menampilkan semua dokumen di MongoDB dengan cara yang tidak terstruktur.
Sintaksis
Berikut ini adalah sintaks dari file find() metode.
>db.COLLECTION_NAME.find()
Contoh
Asumsikan kami telah memasukkan 3 dokumen ke dalam database bernama testDB dalam koleksi bernama sampel menggunakan kueri berikut -
> use testDB
> db.createCollection("sample")
> data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" },
{"_id": "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
]
> db.sample.insert(data)
Anda dapat mengambil dokumen yang dimasukkan menggunakan metode find () sebagai -
> use testDB
switched to db testDB
> db.sample.find()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
>
Anda juga bisa mengambil dokumen pertama dalam koleksi menggunakan metode findOne () sebagai -
> db.sample.findOne()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
Mengambil Data (temukan) Menggunakan Python
Itu find_One() metode pymongo digunakan untuk mengambil satu dokumen berdasarkan kueri Anda, jika tidak ada yang cocok, metode ini tidak mengembalikan apa pun dan jika Anda tidak menggunakan kueri apa pun, metode ini mengembalikan dokumen pertama dari koleksi.
Metode ini berguna setiap kali Anda perlu mengambil hanya satu dokumen dari hasil atau, jika Anda yakin bahwa kueri Anda hanya mengembalikan satu dokumen.
Contoh
Mengikuti contoh python mengambil dokumen pertama dari sebuah koleksi -
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['mydatabase']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
print(res.inserted_ids)
#Retrieving the first record using the find_one() method
print("First record of the collection: ")
print(coll.find_one())
#Retrieving a record with is 103 using the find_one() method
print("Record whose id is 103: ")
print(coll.find_one({"_id": "103"}))
Keluaran
Data inserted ......
['101', '102', '103']
First record of the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
Record whose id is 103:
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Untuk mendapatkan beberapa dokumen dalam satu kueri (metode pencarian od panggilan tunggal), Anda dapat menggunakan find()metode pymongo. Jika belum melewati kueri apa pun, ini mengembalikan semua dokumen dari sebuah koleksi dan, jika Anda telah menyampaikan kueri ke metode ini, ini mengembalikan semua dokumen yang cocok.
Contoh
#Getting the database instance
db = client['myDB']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving all the records using the find() method
print("Records of the collection: ")
for doc1 in coll.find():
print(doc1)
#Retrieving records with age greater than 26 using the find() method
print("Record whose age is more than 26: ")
for doc2 in coll.find({"age":{"$gt":"26"}}):
print(doc2)
Keluaran
Data inserted ......
Records of the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Record whose age is more than 26:
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Saat mengambil menggunakan find()metode, Anda dapat memfilter dokumen menggunakan objek kueri. Anda dapat meneruskan kueri yang menentukan kondisi untuk dokumen yang diperlukan sebagai parameter untuk metode ini.
Operator
Berikut adalah daftar operator yang digunakan dalam kueri di MongoDB.
Operasi | Sintaksis | Contoh |
---|---|---|
Persamaan | {"key": "value"} | db.mycol.find ({"by": "tutorials point"}) |
Kurang dari | {"key": {$ lt: "value"}} | db.mycol.find ({"suka": {$ lt: 50}}) |
Kurang Dari Sama Dengan | {"key": {$ lte: "value"}} | db.mycol.find ({"suka": {$ lte: 50}}) |
Lebih besar dari | {"key": {$ gt: "value"}} | db.mycol.find ({"suka": {$ gt: 50}}) |
Lebih Dari Sama | {"kunci" {$ gte: "value"}} | db.mycol.find ({"suka": {$ gte: 50}}) |
Tidak Sama | {"key": {$ ne: "value"}} | db.mycol.find ({"suka": {$ ne: 50}}) |
Contoh 1
Contoh berikut mengambil dokumen dalam koleksi yang namanya sarmista.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['sdsegf']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": "25", "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": "23", "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": "26", "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving data
print("Documents in the collection: ")
for doc1 in coll.find({"name":"Sarmista"}):
print(doc1)
Keluaran
Data inserted ......
Documents in the collection:
{'_id': '1005', 'name': 'Sarmista', 'age': '23', 'city': 'Delhi'}
Contoh2
Contoh berikut mengambil dokumen dalam koleksi yang nilai usianya lebih dari 26.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['ghhj']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": "25", "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": "23", "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": "26", "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving data
print("Documents in the collection: ")
for doc in coll.find({"age":{"$gt":"26"}}):
print(doc)
Keluaran
Data inserted ......
Documents in the collection:
{'_id': '1002', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '1003', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Saat mengambil konten koleksi, Anda dapat mengurutkan dan mengaturnya dalam urutan naik atau turun menggunakan sort() metode.
Untuk metode ini, Anda dapat meneruskan kolom dan urutan pengurutan yaitu 1 atau -1. Di mana, 1 untuk urutan naik dan -1 untuk urutan turun.
Sintaksis
Berikut ini adalah sintaks dari metode sort () .
>db.COLLECTION_NAME.find().sort({KEY:1})
Contoh
Asumsikan kita telah membuat koleksi dan memasukkan 5 dokumen ke dalamnya seperti yang ditunjukkan di bawah ini -
> use testDB
switched to db testDB
> db.createCollection("myColl")
{ "ok" : 1 }
> data = [
... {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
... {"_id": "1002", "name": "Rahim", "age": 27, "city": "Bangalore"},
... {"_id": "1003", "name": "Robert", "age": 28, "city": "Mumbai"},
... {"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
... {"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
... {"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
> db.sample.insert(data)
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 6,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Baris berikut mengambil semua dokumen koleksi yang diurutkan dalam urutan menaik berdasarkan usia.
> db.sample.find().sort({age:1})
{ "_id" : "1005", "name" : "Sarmista", "age" : 23, "city" : "Delhi" }
{ "_id" : "1004", "name" : "Romeo", "age" : 25, "city" : "Pune" }
{ "_id" : "1006", "name" : "Rasajna", "age" : 26, "city" : "Chennai" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
Menyortir Dokumen Menggunakan Python
Untuk mengurutkan hasil kueri dalam ascending atau, descending order pymongo menyediakan sort()metode. Untuk metode ini, berikan nilai angka yang mewakili jumlah dokumen yang Anda perlukan dalam hasil.
Secara default, metode ini mengurutkan dokumen dalam urutan menaik berdasarkan bidang yang ditentukan. Jika Anda perlu mengurutkan dalam urutan menurun, berikan -1 bersama dengan nama bidang -
coll.find().sort("age",-1)
Contoh
Contoh berikut mengambil semua dokumen dari koleksi yang diatur sesuai dengan nilai usia dalam urutan menaik -
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['b_mydb']
#Creating a collection
coll = db['myColl']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving first 3 documents using the find() and limit() methods
print("List of documents (sorted in ascending order based on age): ")
for doc1 in coll.find().sort("age"):
print(doc1)
Keluaran
Data inserted ......
List of documents (sorted in ascending order based on age):
{'_id': '1005', 'name': 'Sarmista', 'age': 23, 'city': 'Delhi'}
{'_id': '1004', 'name': 'Romeo', 'age': 25, 'city': 'Pune'}
{'_id': '1006', 'name': 'Rasajna', 'age': 26, 'city': 'Chennai'}
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1002', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '1003', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Anda dapat menghapus dokumen dalam koleksi menggunakan remove()metode MongoDB. Metode ini menerima dua parameter opsional -
Kriteria penghapusan yang menentukan kondisi untuk menghapus dokumen.
Hanya satu, jika Anda mengirimkan true atau 1 sebagai parameter kedua, maka hanya satu dokumen yang akan dihapus.
Sintaksis
Berikut ini adalah sintaks dari metode remove () -
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
Contoh
Asumsikan kita telah membuat koleksi dan memasukkan 5 dokumen ke dalamnya seperti yang ditunjukkan di bawah ini -
> use testDB
switched to db testDB
> db.createCollection("myColl")
{ "ok" : 1 }
> data = [
... {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
... {"_id": "1002", "name": "Rahim", "age": 27, "city": "Bangalore"},
... {"_id": "1003", "name": "Robert", "age": 28, "city": "Mumbai"},
... {"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
... {"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
... {"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
> db.sample.insert(data)
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 6,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Kueri berikut menghapus dokumen dari koleksi yang memiliki nilai nama sebagai Sarmista.
> db.sample.remove({"name": "Sarmista"})
WriteResult({ "nRemoved" : 1 })
> db.sample.find()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
{ "_id" : "1004", "name" : "Romeo", "age" : 25, "city" : "Pune" }
{ "_id" : "1006", "name" : "Rasajna", "age" : 26, "city" : "Chennai" }
Jika Anda memohon remove() metode tanpa melewati kriteria penghapusan, semua dokumen dalam koleksi akan dihapus.
> db.sample.remove({})
WriteResult({ "nRemoved" : 5 })
> db.sample.find()
Menghapus Dokumen Menggunakan Python
Untuk menghapus dokumen dari koleksi MangoDB, Anda dapat menghapus dokumen dari koleksi menggunakan metode delete_one() dan delete_many() metode.
Metode ini menerima objek kueri yang menentukan kondisi untuk menghapus dokumen.
Metode detele_one () menghapus satu dokumen, jika ada yang cocok. Jika tidak ada kueri yang ditentukan, metode ini menghapus dokumen pertama dalam koleksi.
Contoh
Contoh python berikut menghapus dokumen dalam koleksi yang memiliki nilai id 1006.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['lpaksgf']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Deleting one document
coll.delete_one({"_id" : "1006"})
#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
print(doc2)
Keluaran
Data inserted ......
Documents in the collection after update operation:
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1002', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '1003', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
{'_id': '1004', 'name': 'Romeo', 'age': 25, 'city': 'Pune'}
{'_id': '1005', 'name': 'Sarmista', 'age': 23, 'city': 'Delhi'}
Demikian pula dengan delete_many() metode pymongo menghapus semua dokumen yang memenuhi kondisi yang ditentukan.
Contoh
Contoh berikut menghapus semua dokumen dalam koleksi yang nilai usianya lebih dari 26 -
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['sampleDB']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": "25", "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": "23", "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": "26", "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Deleting multiple documents
coll.delete_many({"age":{"$gt":"26"}})
#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
print(doc2)
Keluaran
Data inserted ......
Documents in the collection after update operation:
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1004', 'name': 'Romeo', 'age': '25', 'city': 'Pune'}
{'_id': '1005', 'name': 'Sarmista', 'age': '23', 'city': 'Delhi'}
{'_id': '1006', 'name': 'Rasajna', 'age': '26', 'city': 'Chennai'}
Jika Anda menjalankan metode delete_many () tanpa meneruskan kueri apa pun, metode ini akan menghapus semua dokumen dalam koleksi.
coll.delete_many({})
Anda dapat menghapus koleksi menggunakan drop() metode MongoDB.
Sintaksis
Berikut ini adalah sintaks metode drop () -
db.COLLECTION_NAME.drop()
Contoh
Contoh berikut menjatuhkan koleksi dengan contoh nama -
> show collections
myColl
sample
> db.sample.drop()
true
> show collections
myColl
Menjatuhkan Koleksi Menggunakan Python
Anda bisa menghapus / menghapus koleksi dari saat ini dengan memanggil metode drop ().
Contoh
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['example2']
#Creating a collection
col1 = db['collection']
col1.insert_one({"name": "Ram", "age": "26", "city": "Hyderabad"})
col2 = db['coll']
col2.insert_one({"name": "Rahim", "age": "27", "city": "Bangalore"})
col3 = db['myColl']
col3.insert_one({"name": "Robert", "age": "28", "city": "Mumbai"})
col4 = db['data']
col4.insert_one({"name": "Romeo", "age": "25", "city": "Pune"})
#List of collections
print("List of collections:")
collections = db.list_collection_names()
for coll in collections:
print(coll)
#Dropping a collection
col1.drop()
col4.drop()
print("List of collections after dropping two of them: ")
#List of collections
collections = db.list_collection_names()
for coll in collections:
print(coll)
Keluaran
List of collections:
coll
data
collection
myColl
List of collections after dropping two of them:
coll
myColl
Anda dapat memperbarui konten dokumen yang sudah ada menggunakan update() metode atau save() metode.
Metode pembaruan mengubah dokumen yang ada sedangkan metode simpan menggantikan dokumen yang ada dengan yang baru.
Sintaksis
Berikut ini adalah sintaks metode update () dan save () dari MangoDB -
>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
Or,
db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
Contoh
Asumsikan kita telah membuat koleksi dalam database dan memasukkan 3 record ke dalamnya seperti yang ditunjukkan di bawah ini -
> use testdatabase
switched to db testdatabase
> data = [
... {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
... {"_id": "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" },
... {"_id": "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
]
[
{"_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad"},
{"_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore"},
{"_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai"}
]
> db.createCollection("sample")
{ "ok" : 1 }
> db.sample.insert(data)
Metode berikut memperbarui nilai kota dokumen dengan id 1002.
>db.sample.update({"_id":"1002"},{"$set":{"city":"Visakhapatnam"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.sample.find()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Visakhapatnam" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
Demikian pula Anda dapat mengganti dokumen dengan data baru dengan menyimpannya dengan id yang sama menggunakan metode save ().
> db.sample.save({ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Vijayawada" })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.sample.find()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Vijayawada" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Visakhapatnam" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
Memperbarui dokumen menggunakan python
Mirip dengan metode find_one () yang mengambil dokumen tunggal, metode update_one () dari pymongo memperbarui satu dokumen.
Metode ini menerima kueri yang menentukan dokumen mana yang akan diperbarui dan operasi pembaruan.
Contoh
Contoh python berikut memperbarui nilai lokasi dokumen dalam koleksi.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['myDB']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving all the records using the find() method
print("Documents in the collection: ")
for doc1 in coll.find():
print(doc1)
coll.update_one({"_id":"102"},{"$set":{"city":"Visakhapatnam"}})
#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
print(doc2)
Keluaran
Data inserted ......
Documents in the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Documents in the collection after update operation:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Visakhapatnam'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Demikian pula dengan update_many() metode pymongo memperbarui semua dokumen yang memenuhi kondisi yang ditentukan.
Contoh
Contoh berikut memperbarui nilai lokasi di semua dokumen dalam koleksi (kondisi kosong) -
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['myDB']
#Creating a collection
coll = db['example']
#Inserting document into a collection
data = [
{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving all the records using the find() method
print("Documents in the collection: ")
for doc1 in coll.find():
print(doc1)
coll.update_many({},{"$set":{"city":"Visakhapatnam"}})
#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
print(doc2)
Keluaran
Data inserted ......
Documents in the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
Documents in the collection after update operation:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Visakhapatnam'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Visakhapatnam'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Visakhapatnam'}
Saat mengambil konten koleksi, Anda dapat membatasi jumlah dokumen dalam hasil menggunakan metode limit (). Metode ini menerima nilai angka yang mewakili jumlah dokumen yang Anda inginkan dalam hasil.
Sintaksis
Berikut ini adalah sintaks dari metode limit () -
>db.COLLECTION_NAME.find().limit(NUMBER)
Contoh
Asumsikan kita telah membuat koleksi dan memasukkan 5 dokumen ke dalamnya seperti yang ditunjukkan di bawah ini -
> use testDB
switched to db testDB
> db.createCollection("sample")
{ "ok" : 1 }
> data = [
... {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
... {"_id": "1002", "name": "Rahim", "age": 27, "city": "Bangalore"},
... {"_id": "1003", "name": "Robert", "age": 28, "city": "Mumbai"},
... {"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
... {"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
... {"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
> db.sample.insert(data)
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 6,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Baris berikut mengambil 3 dokumen pertama dari koleksi.
> db.sample.find().limit(3)
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
Membatasi Dokumen Menggunakan Python
Untuk membatasi hasil query ke sejumlah dokumen tertentu, pymongo menyediakan limit()metode. Untuk metode ini, berikan nilai angka yang mewakili jumlah dokumen yang Anda perlukan dalam hasil.
Contoh
Contoh berikut mengambil tiga dokumen pertama dalam sebuah koleksi.
from pymongo import MongoClient
#Creating a pymongo client
client = MongoClient('localhost', 27017)
#Getting the database instance
db = client['l']
#Creating a collection
coll = db['myColl']
#Inserting document into a collection
data = [
{"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
{"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
{"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
{"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")
#Retrieving first 3 documents using the find() and limit() methods
print("First 3 documents in the collection: ")
for doc1 in coll.find().limit(3):
print(doc1)
Keluaran
Data inserted ......
First 3 documents in the collection:
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1002', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '1003', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}