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
  • 相关阅读:
    用Python作GIS:择菜篇
    【嵌入式开发技术之串口】Linux下串口主机程序
    1033,2052 是什么意思?
    Telnet协议详解
    生活情景英语:英语国家生存英语精选
    windows下搭建iphone开发环境
    开公司的流程
    解决某物流企业二维码打印问题
    数字黑洞
    InnoSetup 打包代码 检测.netFramework
  • 原文地址:https://www.cnblogs.com/mayi0312/p/12100410.html
Copyright © 2011-2022 走看看