Python使用MongoDB简记

《MongoDB使用简记》

  常用的数据库就是关系型数据库MySQL、Oracle以及非关系型数据库Redis、HBase等,数据库和基础数据结构一样,无非就是增、删、改、查,根据不同的场景来选择关系型数据库和非关系型数据库,然后了解该数据库是如何增、删、改、查的就OK,本文简单记录了MongoDB的使用教程

Key Words:MongoDB、增删改查、Python


Beijing, 2020

作者:RaySue

Code:

Agile Pioneer  

文章目录

    • MongoDB 简介
    • MongoDB安装
      • Mac 安装
      • Linux 安装
    • MongoDB常用命令
      • - 增 -
      • - 删 -
      • - 改 -
      • - 查 -
    • Python使用MongoDB
    • 参考

MongoDB 简介

  传统的关系数据库(如MySQL)一般由数据库(Database)、表(Table)、记录(Record)三个层次概念组成,相应的MongoDB是由数据库(Database)、集合(Collection)、文档对象(Document)三个层次组成。

  MongoDB稳定,MongoDB支持索引,索引放在内存中,能够提升随机读写的性能。如果索引不能完全放在内存,一旦出现随机读写比较高的时候,就会频繁地进行磁盘交换,MongoDB的性能就会急剧下降,MongoDB占用的空间很大,因为它属于典型空间换时间原则的类型。那么它的磁盘空间比普通数据库会浪费一些。

  MongoDB是一个基于分布式文件存储的数据库。由c++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最丰富,最像关系数据库的。


MongoDB安装

Mac 安装

两种方式:

  • 安装包
  • brew

参见:https://www.runoob.com/mongodb/mongodb-osx-install.html

Linux 安装

参见:https://www.runoob.com/mongodb/mongodb-linux-install.html


MongoDB常用命令

  • 输入 mongo 进入MongoDB数据库

  • 每条数据都必须有的字段是 “_id” 用于唯一标识,如果不指定就会随机生成一个uuid用于唯一标识,如果insert的数据与表中的 _id 相同就会报错,插入失败

- 增 -

  • 创建库

    • mongodb 的库是隐式创建,你可以 use 一个不存在的库,然后在该库下创建collection,即可创建库
    • use xDB
  • 创建名为 xxx 的 collection(表)

    • db.createCollection(‘xxx’)
    • collection 允许隐式创建 db.collectionName.insert(document);
    • 其中 document={‘a’:1}
  • 添加一条数据(隐式创建,如果不存在就创建)

    • db.collectionName.insertOne(document);
    • db.collectionName.insert(document);

- 删 -

  • 删除数据库(删除哪个要先use哪个)

    • db.dropDatabase()
  • 删除 collection(表)

    • db.collectionName.drop();

- 改 -

  • $set

    • 对course下的score为100的添加一个price字段和对应的值
    • db.course.updateOne({“score”:100},{$set:{“price”:99.8}})
    • 对已经存在的字段就是直接修改值了
  • $unset

    • 删除某个field,比如price
    • db.course.updateOne({“score”:100},{$unset:{“price”:1}})
  • $push

    • 对第一条数据某个字段添加一条数据:
    • db.course.updateOne{ {},{$push:{“name”:“surui”}}}
    • 对所有数据添加一条数据:
    • db.course.updateMany{ {},{$push:{“name”:“surui”}}}
    • {“name”:[“surui”, “surui”]}
  • $pop

    • 删除某个字段的最后一条数据
    • db.course.updateOne{ {},{$pop}}
    • db.course.updateMany{ {},{$pop}}

- 查 -

  • 查看当前的数据库

    • show dbs;
  • 查某个库下的所有表

    • use DataBaseName
    • show tables/collections
  • 查表a下的数据

    • db.a.findOne() // 查一条
    • db.a.find() // 查所有
  • 条件限制查询

    • db.a.find({‘name’:‘xxx’}) // 查所有name为xxx的数据记录
    • db.a.find({prices:{’$gte’:10}}) // 查prices字段大于10的

退出 exit 数据库

Python使用MongoDB

  • 先后台启动 mongo 服务

    • mongod --dbpath 数据库位置 --logpath 日志位置 --fork
import pymongo


client = pymongo.MongoClient()
db = client['库名']
collection = db['collection名']  # 如果没有就会自动创建
# 返回collection下的所有内容
data_dict = collection.find()
# 修改id为1的key值
collection.update({
     '_id': 1}, {
     "$set": {
     "key": 1}})  


参考

创建
https://www.cnblogs.com/xiaozhaoboke/p/11479313.html

查数据
https://www.cnblogs.com/qikeyishu/p/10720103.html

https://www.cnblogs.com/baijinshuo/p/10277390.html

你可能感兴趣的:(Python使用MongoDB简记)