python操作MongoDB

(一)安装 Python MongoDB 驱动程序

  • 安装MongoDB驱动(在 Python 中使用 MongoDB 之前必须先安装用于访问数据库的驱动程序)

    pip install pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple
(二)检查驱动
  • 在 python 交互模式下导入 pymongo,检查驱动是否已正确安装:

    import pymongo 
(三)创建连接(连接到MongoDB)
  • 使用驱动连接到 MongoDB 集群只需要指定 MongoDB 连接字符串即可。其基本格式可以参考官方文档:Connection Strings - MongoDB Manual v8.0

  • 最简单的形式:mongodb://数据库服务器主机地址:端口号

  • 如:mongodb://127.0.0.1:27017

  • 使用python连接mongodb示例:

    from pymongo import MongoClient
    uri = "mongodb://127.0.0.1:27017"
    client = MongoClient(uri)
    print(client)
(四)创建数据库
  • 创建名为testdb的数据库

    mydb = client['testdb']
  • 创建名为sites的集合

    mycol = mydb['sites']
(五)插入数据
  • 插入单条数据

    mydict = {"name": "Google", "alexa": "1", "url": "https://www.google.com" }
    x = mycol.insert_one(mydict)
    print(x1.inserted_id)
  • 插入多条数据

    mylist = [
      {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"},
      {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"},
      {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"},
      {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"},
      {"name": "Github", "alexa": "109", "url": "https://www.github.com"}
    ]
    x = mycol.insert_many(mylist)
    print(x2.inserted_ids)
(六)查询数据
  • 查询集合第一条数据

    x = mycol.find_one()
    print(x)
  • 查询集合所有数据

    for x in mycol.find():
      print(x)
  • 查询指定字段数据

    for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):
      print(x)
  • 根据指定条件查询

    myquery = { "name": "RUNOOB" }
    mydoc = mycol.find(myquery)
    for x in mydoc:
      print(x)
  • 返回指定条数记录

    myresult = mycol.find().limit(3)
     
    # 输出结果
    for x in myresult:
      print(x)
    
    
(七)修改数据
  • 修改其中一条数据

    myquery = { "alexa": "10000" }
    newvalues = { "$set": { "alexa": "12345" } }
     
    mycol.update_one(myquery, newvalues)
     
    # 输出修改后的  "sites"  集合
    for x in mycol.find():
      print(x)
  • 修改多条数据

    myquery = { "name": { "$regex": "^F" } }
    newvalues = { "$set": { "alexa": "123" } }
    x = mycol.update_many(myquery, newvalues)
    print(x.modified_count, "文档已修改")
(八)修改数据
  • 删除一条文档

    myquery = { "name": "Taobao" }
    mycol.delete_one(myquery)
    # 删除后输出
    for x in mycol.find():
      print(x)

  • 删除多条文档

myquery = { "name": {"$regex": "^F"} }
x = mycol.delete_many(myquery) #删除所有 name 字段中以 F 开头的文档
print(x.deleted_count, "个文档已删除")
  • 删除集合所有文档

x = mycol.delete_many({})
 
print(x.deleted_count, "个文档已删除")
  • 删除集合

    mycol.drop()

(九)总结

你可能感兴趣的:(python,mongodb,开发语言)