
pymongo을 이용하여 MongoDB 서버로 접속할 수 있습니다.
connector의 속성으로 데이터베이스 명을 지정하여 사용할 수 있으며 connector.get_database(name="test_db")으로 사용해도 됩니다.
import pymongo
connector = pymongo.MongoClient(host="192.168.0.38", port=27017)
db = connector.test_db
데이터베이스의 속성으로 Collection 명을 지정하여 사용할 수 있으며 db.get_collection(name="tb_user")으로 사용해도 됩니다.
MongoDB의 데이터들은 JSON 형식으로 이루어져 있으며 데이터 생성 후 생성된 ObjectId 값을 반환합니다.
import pymongo
connector = pymongo.MongoClient(host="192.168.0.38", port=27017)
db = connector.test_db
user = {"name":"user1","password":"user1_password"}
inserted_id = db.tb_user.insert_one(document=user).inserted_id
print(inserted_id)
users = [{"name":"user2","password":"user2_password"}, {"name":"user3","password":"user3_password"}, {"name":"user2","password":"user2_password2"}]
inserted_ids= db.tb_user.insert_many(documents=users).inserted_ids
print(inserted_ids)
print(db.tb_user.count_documents(filter={})) # 4
데이터베이스의 속성으로 Collection 명을 지정하여 사용할 수 있으며 db.get_collection(name="tb_user")으로 사용해도 됩니다.
반환된 데이터는 dictionary를 사용하는 것처럼 사용하면 됩니다.
import pymongo
connector = pymongo.MongoClient(host="192.168.0.38", port=27017)
db = connector.test_db
user = db.tb_user.find_one(filter={"name":"user3"})
print(user)
users = db.tb_user.find(filter={"name":"user2"})
for user in users:
print(user)
users = db.tb_user.find(filter={"name":{"$regex":"user"}})
for user in users:
print(user)
데이터베이스의 속성으로 Collection 명을 지정하여 사용할 수 있으며 db.get_collection(name="tb_user")으로 사용해도 됩니다.
update를 표현하는 방법은 다양합니다.
import pymongo
connector = pymongo.MongoClient(host="192.168.0.38", port=27017)
db = connector.test_db
modified_count = db.tb_user.update_one(filter={"name":"user1"}, update={"$set":{"password":"secret_password"}}).modified_count
print(modified_count)
user = db.tb_user.find_one(filter={"name":"user1"})
print(user)
db.tb_user.update_many(filter={"name":"user2"}, update={"$set":{"password":"secret_password2"}})
users = db.tb_user.find(filter={"name":"user2"})
for user in users:
print(user)
데이터베이스의 속성으로 Collection 명을 지정하여 사용할 수 있으며 db.get_collection(name="tb_user")으로 사용해도 됩니다.
삭제된 데이터의 수가 반환됩니다.
import pymongo
connector = pymongo.MongoClient(host="192.168.0.38", port=27017)
db = connector.test_db
deleted_count = db.tb_user.delete_one(filter={"name":"user1"}).deleted_count
print(deleted_count)
user = db.tb_user.find_one(filter={"name":"user1"})
print(user)
deleted_count = db.tb_user.delete_many(filter={"name":"user2"}).deleted_count
print(deleted_count)