要想用python操控MongoDB,需要引入一个python模块pymongo。
首先引入pymongo模块,用账号密码进入数据库,为了使操作像mongodb的操作靠近我们用db接收db_select数据库。
import pymongo
client=pymongo.MongoClient(host="localhost",port=27017)
client.admin.authenticate("root","root")
db=client.db_select
下面我们来进行数据库的增删改查操作:
1.增加 和 查找
for i in range(5):
db.blog.insert({"name":str(i)+"毛","age":18-i,"gender":"nan","address":"huoxing"})
for i in db.blog.find():
print(i)
在python的命令行中,db.collection.find()并不能查找到集合中的数据,如果想查看集合中的数据,需要将其遍历。
<pymongo.cursor.Cursor object at 0x000001BE289DA358>
{'_id': ObjectId('5b374a124a81f108f02193f5'), 'name': '0毛', 'age': 18, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f6'), 'name': '1毛', 'age': 17, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f7'), 'name': '2毛', 'age': 16, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f8'), 'name': '3毛', 'age': 15, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f9'), 'name': '4毛', 'age': 14, 'gender': 'nan', 'address': 'huoxing'}
下面我们用insert_one来向数据库中添加一个文档、
db.blog.insert_one({"name":"duanyu","age":23,"gender":"nan","address":"dali"})
如何判断其是否添加进blog里了呢,我们可以用find_one进行查看,我们来查找name为duanyu的人
print(db.blog.find_one({"name":"duanyu"}))
查询结果是:
{'_id': ObjectId('5b374ba54a81f121a4da3aa2'), 'name': 'duanyu', 'age': 23, 'gender': 'nan', 'address': 'dali'}
下面我们用insert_many来向集合添加多个文档
db.blog.insert_many([{"name":"qianfeng","age":30,"address":"xixia","kongfu":"xianglongshibazhang"},
{"name":"xuzhu","age":26,"address":"shaolinsi"}])
查看xuzhu和qianfeng是否存在
for i in db.blog.find({"name":{"$in":["xuzhu","qianfeng"]}}):
print(i)
结果如下:
{'_id': ObjectId('5b374deb4a81f121a8c0a0b6'), 'name': 'qianfeng', 'age': 30, 'address': 'xixia', 'kongfu': 'xianglongshibazhang'}
{'_id': ObjectId('5b374deb4a81f121a8c0a0b7'), 'name': 'xuzhu', 'age': 26, 'address': 'shaolinsi'}
2. 修改数据
(1) 我们用update来更改年龄为15的人的信息
db.blog.update({"age":15},{"age":16,"address":"yueqiu"})db.blog.update({"age":15},{"age":16,"address":"yueqiu"})
最后查找遍历
for i in db.blog.find():
print(i)
发现 3毛的信息如下
{'_id': ObjectId('5b374a124a81f108f02193f8'), 'age': 16, 'address': 'yueqiu'}
(2) 我们有update_one来修改2毛的信息