Understanding Database 8 - NoSQL + Python Basic

2023. 1. 16. 05:56Data science/Database

반응형
  • PyMongo <-BSON->MongoDB 
  • Client-side JSON(Python) <->Python App, PyMongo Driver <-> NoSQL BSON(MongoDB)

Install and Use PyMonggo + DNSPython(to connect MongoDB Atlas)

python -m pip install pymongo
python -m pip install dnspython

import pymongo
from pymongo import MongoClient

conn_str="mongodb+srv"://<username>:<password>@<cluster-name>.mongodb.net/myFristDatabase"
client = MongoClient(conn_str, serverSelectionTimeoutMs=5000)
try:
     print(client.server_info())
except Exception:
     print("Unable to connect to the server.")

MongoDB is lazy; none of the commands works until the first document inserted

: Three commands are executed together using either dictionary-style access or attribute-style access

(The approach is different, Dictionay-style uses [ ], while attribute-style uses "db.objectname.fieldname")

 

Dictionary-Style Access

myDB = client["OnlineStore"]
myCollection = myDB["phones.items"]

item_1={
"_id": "ewubkjdsk244",
"name": "iphone 13"}

myCollection.insert_one(item_1)
print(myCollection.inserted_id)

//
import pprint
myCollection = myDB["phones.items"]
user1_items=myCollection.find()
for item in user1_items:
	pprint.pprtin(item)

Attribute-Style Access

myDB = client.OnlineStore
myCollection = myDB.phones.items

item_1={
"_id": "ewubkjdsk244",
"name": "iphone 13"}

myCollection.insert_one(item_1)
print(myCollection.inserted_id)

//
import pprint
myCollection = myDB.phones.items
user1_items=myCollection.find()
for item in user1_items:
	pprint.pprtin(item)

Inserting multiple documents

item_1 ={
	"_id": "hvjh399"
}

item_2 ={
	"_id": "hvjh400"
}

item_3 ={
	"_id": "hvjh401"
}

new_items=[item_1, item_2, item_3]

////

myDB = client["OnlineStore"]
myCollection= myDB["phones.items"]
myCollection.insert_many(new_items)

Viewing inserted document with pandas

import pandas as pd
all_items = myCollection.find()
items_df=pd.DataFrame(all_items)
items_df
반응형