Python 操作mongodb数据库

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:   查看数据库  from pymongo import MongoClient  connect=MongoClient(host='localhost', port=27017, username="root", password="123456")  connect=MongoClient('mongodb://localhost:27017/', username="root", password="123456")  print(connect.list_database_names())

  查看数据库

  from pymongo import MongoClient

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456")

  connect=MongoClient('mongodb://localhost:27017/', username="root", password="123456")

  print(connect.list_database_names())

  获取二手游戏账号转让平台数据库实例

  test_db=connect['test']

  获取collection实例

  collection=test_db['students']

  插入一行document, 查询一行document,取出一行document的值

  from pymongo import MongoClient

  from datetime import datetime

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  # 构建document

  document={"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"], "date": datetime.now()}

  # 插入document

  one_insert=collection.insert_one(document=document)

  print(one_insert.inserted_id)

  # 通过条件过滤出一条document

  one_result=collection.find_one({"author": "Mike"})

  # 解析document字段

  print(one_result, type(one_result))

  print(one_result['_id'])

  print(one_result['author'])

  注意:如果需要通过id查询一行document,需要将id包装为ObjectId类的实例对象

  from bson.objectid import ObjectId

  collection.find_one({'_id': ObjectId('5c2b18dedea5818bbd73b94c')})

  插入多行documents, 查询多行document, 查看collections有多少行document

  from pymongo import MongoClient

  from datetime import datetime

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  documents=[{"author": "Mike","text": "Another post!","tags": ["bulk", "insert"], "date": datetime(2009, 11, 12, 11, 14)},

  {"author": "Eliot", "title": "MongoDB is fun", "text": "and pretty easy too!", "date": datetime(2009, 11, 10, 10, 45)}]

  collection.insert_many(documents=documents)

  # 通过条件过滤出多条document

  documents=collection.find({"author": "Mike"})

  # 解析document字段

  print(documents, type(documents))

  print(''300)

  for document in documents:

  print(document)

  print(''300)

  result=collection.count_documents({'author': 'Mike'})

  print(result)

  范围比较查询

  from pymongo import MongoClient

  from datetime import datetime

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  # 通过条件过滤时间小于datetime(2021, 1,1,15,40,3) 的document

  documents=collection.find({"date": {"$lt": datetime(2021, 1,1,15,40,3)}}).sort('date')

  # 解析document字段

  print(documents, type(documents))

  print(''300)

  for document in documents:

  print(document)

  创建索引

  from pymongo import MongoClient

  import pymongo

  from datetime import datetime

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  # 创建字段索引

  collection.create_index(keys=[("name", pymongo.DESCENDING)], unique=True)

  # 查询索引

  result=sorted(list(collection.index_information()))

  print(result)

  document修改

  from pymongo import MongoClient

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  result=collection.update({'name': 'robby'}, {'$set': {"name": "Petter"}})

  print(result)

  注意:还有update_many()方法

  document删除

  from pymongo import MongoClient

  connect=MongoClient(host='localhost', port=27017, username="root", password="123456",)

  # 获取db

  test_db=connect['test']

  # 获取collection

  collection=test_db['students']

  result=collection.delete_one({'name': 'Petter'})

  print(result.deleted_count)

  注意:还有delete_many()方法

目录
相关文章
|
19天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
185 7
|
4月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
4月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
372 79
|
2月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
2月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
228 0
|
4月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
233 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
6月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
608 77
|
3月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
7月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
8月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断