安装
pip3 install pymongo连接
# 无密码连接import pymongomongo_client = pymongo.MongoClient("127.0.0.1", 27017)# 有密码连接import pymongomongo_client = pymongo.MongoClient("127.0.0.1", 27017)mongo_auth = mongo_client.admin # mongo_client["admin"] mongo_auth.authenticate('用户名', '密码')# 无密码连接import pymongomongo_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")# 有密码连接import pymongoimport urllib.parsemongo_username = urllib.parse.quote_plus('用户名')mongo_password = urllib.parse.quote_plus('密码')mongo_client = pymongo.MongoClient("mongodb://%ss@127.0.0.1:27017"%(mongo_username, mongo_password))print(mongo_client.server_info()) # 判断是否连接成功获取Database 和 Collection
若没有 Database 和 Collection 则会自动创建
mongo_db = mongo_client["database"] # mongo_client.databasemong_collection = mongo_db["collection"] # mongo_db.collectionCURD 操作
import datatimeinfo = { "name": "Zarten", "text": "Inserting a Document", "tags": ["a", "b", "c"], "date": datetime.datetime.now()}mongo_collection.insert_one(info)
import datetimeinfo_1 = { 'name' : 'Zarten_1', 'text' : 'Inserting a Document', 'tags' : ['a', 'b', 'c'], 'date' : datetime.datetime.now()}info_2 = { 'name' : 'Zarten_2', 'text' : 'Inserting a Document', 'tags' : [1, 2, 3], 'date' : datetime.datetime.now()}insert_list = [info_1, info_2]mongo_collection.insert_many(insert_list)
- 插入字符串类型的时间
由上图可以看到插入字符串时间时,mongodb自动转成了 ISOdate类型,若需要时间在mongdb也是字符串类型,只需这样操作即可
datetime.datetime.now().isoformat()
mongo_collection.delete_one({'text' : 'a'})
mongo_collection.delete_many({'text' : 'a'})
info = { 'name': '桃子 ', 'text': 'peach', 'tags': [1, 2, 3], 'date': datetime.datetime.now()}update_condition = {'name' : 'Zarten_2'} #更新的条件,也可以为多个条件#更新条件多个时,需要同时满足时才会更新# update_condition = {'name' : 'Pear',# 'text' : '梨子'}mongo_collection.update_one(update_condition, {'$set' : info})
info = { 'name': 'Zarten', 'text': 'a', 'tags': [1, 2, 3], 'date': datetime.datetime.now()}update_condition = {'text' : 'a'} #更新的条件#更新条件多个时,需要同时满足时才会更新# update_condition = {'name' : 'Pear',# 'text' : '梨子'}mongo_collection.update_many(update_condition, {'$set' : info})
mongo_collection.update_many(update_condition, {'$set' : info}, upsert= True)
find_condition = { 'name' : 'Banana', 'text' : 'peach'}find_result = mongo_collection.find_one(find_condition)# 可以通过**projection**参数来指定需要查询的字段,包括是否显示 _id ,更多具体用法参考 [find()](https://link.zhihu.com/?target=https%3A//api.mongodb.com/python/current/api/pymongo/collection.html%23pymongo.collection.Collection.find)find_condition = { 'name' : 'Zarten_3',}select_item = mongo_collection.find_one(find_condition, projection= {'_id':False, 'name':True, 'num':True})print(select_item)<ul>范围查询
范围查询通常用 |