Python中使用MongoDB详解

源代码 2024-9-28 19:07:51 35 0 来自 中国
安装

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 操作


  • insert_one() 插入一条数据
import datatimeinfo = {  "name": "Zarten",  "text": "Inserting a Document",  "tags": ["a", "b", "c"],  "date": datetime.datetime.now()}mongo_collection.insert_one(info)

  • insert_many() 插入多条数据
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()

  • delete_one() 删除一条数据
mongo_collection.delete_one({'text' : 'a'})

  • delete_mang() 删除多条数据
mongo_collection.delete_many({'text' : 'a'})

  • update_one() 更新一条数据
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})

  • update_many() 更新多条数据
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_one() 查询一条数据
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>范围查询
范围查询通常用
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:43, Processed in 0.139030 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表