1. 简介
MongoDB 是一个基于分布式文件存储的文档数据库, 可以说是非关系型 (NoSQL,Not Only SQL) 数据库中比较像关系型数据库的一个, 具有免费, 操作简单, 面向文档, 自动分片, 可扩展性强, 查询功能强大等特点, 对大数据处理支持较好, 旨在为 web 应用提供可扩展的高性能数据存储解决方案.
MongoDB 将数据存储为一个文档, 数据结构由键值 (key=>value) 对组成. MongoDB 文档类似于 JSON 对象. 字段值可以包含其他文档, 数组及文档数组.
2. 应用
MongoDB 数据库可以到网站 https://www.mongodb.org/downloads 下载, 安装之后打开命令提示符环境并切换到 MongoDB 安装目录中的 server\3.2\bin 文件夹, 然后执行命令 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
来源: http://www.bubuko.com/infodetail-3350573.html