zoukankan      html  css  js  c++  java
  • Python操作MongoDb数据库

    1.简介

    MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(NoSQL,Not Only SQL)数据库中比较像关系型数据库的一个,具有免费、操作简单、面向文档、自动分片、可扩展性强、查询功能强大等特点,对大数据处理支持较好,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。

    2.应用

    MongoDB数据库可以到网站https://www.mongodb.org/downloads下载,安装之后打开命令提示符环境并切换到MongoDB安装目录中的server3.2in文件夹,然后执行命令mongod --dbpath D:data --journal -- storageEngine=mmapv1启动MongoDB,当然需要首先在D盘根目录下新建文件夹data。

    让刚才那个命令提示符环境始终处于运行状态,然后再打开一个命令提示符环境,执行mongo命令连接MongoDB数据库,如果连接成功的话,会显示一个>符号作为提示符,之后就可以输入MongoDB命令了。

    打开或创建数据库students

    >use students

    在数据库中插入数据

    >zhangsan = {‘name’: ‘Zhangsan’, ‘age’: 18, ‘gender’: ‘male’}

    >db.students.insert(zhangsan)

    >lisi = {‘name’: ‘Lisi’, ‘age’: 19, ‘gender’: ‘male’}

    >db.students.insert(lisi)

    查询数据库中的记录

    >db.students.insert(lisi)

    查询数据库中的记录

    >db.students.find()

    查看系统中所有数据库名称

    >show dbs

    3.pymongo模块

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : MaYi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2019-12-25
    # Name     : test01
    # Software : PyCharm
    # Note     : 应用pymongo模块操作MongoDB数据库
    # 导入模块
    import pymongo
    
    # 连接数据库,27017是默认端口
    client = pymongo.MongoClient("localhost", 27017)
    # 获取数据库
    db = client.students
    
    # 打印数据集合名称列表
    print(db.collection_names)
    
    # 获取数据集合
    res = db.students.find()
    print(res)
    for item in res:
        # 遍历数据
        print(item)
    
    wangwu = {"name": "Wangwu", "age": 20, "sex": "male"}
    # 插入一条记录
    db.students.insert(wangwu)
    
    for item in db.students.find({"name": "Wangwu"}):
        # 指定查询条件
        print(item)
    
    # 获取一条记录
    print(db.students.find_one())
    print(db.students.find_one({"name": "Wangwu"}))
    
    # 记录总数
    print(db.students.find().count())
    
    # 删除一条记录
    db.students.remove({"name": "Wangwu"})
    
    # 创建索引
    db.students.create_index([("name", pymongo.ASCENDING)])
    
    # 更新数据库
    db.students.update({"name": "Zhangsan"}, {"$set": {"age": 25}})
    
    # 清空数据库
    db.students.remove()
    
    # 插入多条数据
    zhangsan = {"name": "Zhangsan", "age": 20, "gender": "male"}
    lisi = {"name": "Lisi", "age": 21, "gender": "male"}
    wangwu = {"name": "Wangwu", "age": 22, "gender": "female"}
    db.students.insert_many([zhangsan, lisi, wangwu])
    
    # 对查询结果排序
    for item in db.students.find().sort("name", pymongo.ASCENDING):
        print(item)
    
    
    # 入口函数
    if __name__ == '__main__':
        pass
  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/mayi0312/p/12100410.html
Copyright © 2011-2022 走看看