python操作MongoDB

下载

pip install pymongo

PyMongo支持CPython 2.6,2.7,3.3+,PyPy和PyPy3

使用MongoClient建立连接

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)

获取数据库

db = mg_client.mgdb
print(db)

Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True), 'mgdb')

获取集合

集合是存储在MongoDB中的一组文档,可以类似于关系数据库中的表。 在PyMongo中获取集合的工作方式与获取数据库相同

tab = db.haha
print(tab)

Collection(Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True), 'mgdb'), 'haha')

文档

MongoDB中的数据使用JSON方式来表示文档(并存储)。 在PyMongo中使用字典来表示文档

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)

data = {
    "user":"invoker",
    "age":25,
    "sex":"man"
}

插入文档

要将文档插入到集合中,可以使用insert_one()方法:

插入一条文档

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb

data = {
    "user":"invoker",
    "age":25,
    "sex":"man"
}
res = db.haha.insert_one(data)
print(res.inserted_id)
View Code

要将文档插入到集合中,可以使用insert_many()方法:

插入多条文档

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb

data = {
    "user":"invoker",
    "age":25,
    "sex":"man"
}
data2 = {
    "name":"mongo",
    "db":"haha"
}
res = db.haha.insert_many([data,data2])   # 注意。这是是用列表包起来的
print(res.inserted_ids)    # 这里就是 ids 了。因为是多条数据
View Code

查询文档

使用 find({}) 查找出所有数据

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb

res = db.haha.find({})
print(res)
for i in res:
    print(i)

<pymongo.cursor.Cursor object at 0x000001E8E002EC18>
{'_id': ObjectId('5d2f26e6b39957f6df66c45f'), 'user': 'invoker', 'age': 25, 'sex': 'man'}
{'_id': ObjectId('5d2f26e6b39957f6df66c460'), 'name': 'mongo', 'db': 'haha'}
View Code

使用 find_one 找出符合指定条件的一条数据,如果有多条数据。返回第一条

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.find_one({"name":"tom"})
print(res)

{'_id': ObjectId('5d2f03fe10c2764480fc19b5'), 'name': 'tom'}
View Code

修改文档

使用 update_one 修改符合条件数据,如果有多条数据,修改第一条

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.update_one({"user":"invoker"},{"$set":{"user":"tom22"}})
print(res.modified_count)
View Code

使用 update_many 修改符合条件的所有数据

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.update_many({"user":"invoker"},{"$set":{"user":"tom22"}})
print(res.modified_count)
View Code

删除文档

使用 delete_one 删除符合指定条件的一条数据

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.delete_one({"name":"invoker"})
print(res)
View Code

使用 delete_many 删除符合指定条件的所有数据

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.delete_many({"name":"tom22"})
print(res)
View Code

使用 delete_many({}) 清空所有数据

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.delete_many({})
print(res)
View Code

模糊查询 

使用正则表达式查询

from pymongo import MongoClient
mg_client = MongoClient("127.0.0.1",27017)
db = mg_client.mgdb


res = db.haha.find({"name":{"$regex":"A"}})    # 查询名字中有 A 的所有数据 和正常的正则表示一样。可以使用 ^ $
print(res)

 

posted @ 2019-07-17 22:50  __Invoker  阅读(286)  评论(0编辑  收藏  举报