,## 数据库的安装

Mac安装MongoDB教程

1.下载安装

安装MongoDB有三种方式:(1)手动命令安装(2)采用Homebrew(3)下载安装包。由于对前两种介绍的命令行安装方法不是很了解,所以选择了第三种方式进行安装。

1.访问MongoDB官方下载地址

官网地址是:MongoDB Download Center | MongoDB

2.点击“DOWNLOAD(tgz)”按钮,将解压后的文件放入 /usr/local ,默认情况下在Finder中是看不到 /usr 这个目录的,可以打开Finder后按 shift + command +G 输入 /usr/local 后回车便能看到这个隐藏的目录了。

 

v3.配置环境变量,打开终端,输入“open -e .bash_profile”,在打开的文件中加入

export PATH=${PATH}:/usr/local/MongoDB/bin

用Command+S保存配置,关闭上面的.bash_profile编辑窗口,然后在下图中输入"source .bash_profile"使配置生效。输入"mongod -version",回车后如果看到下面的版本号则说明MongoDB已经成功安装到了Mac上。

4.在根目录下新建 data 文件夹,里面再建一个 db 文件夹,安装MongoDB时并不会自动生成,需要我们手动创建,可以在命令行输入创建,也可以直接在Finder中手动新建

sudo mkdir -p /data/db

2.运行

1.打开命令行输入

mongod

启动服务端

显示等候客户端连接的界面就代表启动成功了,如果不成功就检查下 /data/db 文件夹位置对不对,不行就重新删掉建一个, 打开浏览器,输入localhost:27017 ,会出现这样一行文字。

It looks like you are trying to access MongoDB over HTTP on the native driver port.

重新打开命令行,输入

mongo

可以对数据库进行操作,要停止MongoDB的时候一定要正确的退出,不然下次再次连接数据库会出现问题,使用下面的两行代码可以完成这一操作。

use admin;

db.shutdownServer();

3.可视化工具

RoboMongo是一个跨平台的MongoDB GUI客户端管理工具,支持Windows、MacOS、Linux。其特点是支持到MongoDB服务器的SSL连接,还支持使用SSH隧道连接。RoboMongo的查询界面同时支持树视图、表格视图、文本视图三种,也可以保存查询结果供以后使用。 Robomongo 可以选择适合自己的版本下载。

MongoDB概念术语

  • database 数据库
  • collection 集合
  • document 文档
  • filed 域
  • index 索引

MongoDB基本结构

  • 文档

    ​ 一个文档就是一条记录,文档以键值对的形式存储

    同一个集合的文档不能有相同的字段,文档是 有序 区分类型 区分大小写

  • 集合

  • 数据库

    • 默认数据库 db
    • 显示所有数据库 show dbs
    • 查看当前使用的数据库 db
  • 常用数据类型(用到再查即可)

    String Integer Boolean Double Arrays Date

数据库基本操作

  • 数据库操作
    • 切换或创建数据库 use database_name( 只有创建 集合插入数据后,才可以使用show dbs can 看到此数据库)
    • 删除数据库 db.dropDatabase()
  • 集合操作
    • 创建集合 db.createCollection(title,options)
    • 查看集合 show collections
    • 删除集合 db.collection_name.drop()
  • 文档操作
    • **插入文档 **

      • db.collection_name.insert(document)

        ​ document 格式: {“key1”:value1,“key2”:value2}

      • db.collection_name.insertMany([document1,document2,…])

        document 格式: {“key1”:value1,“key2”:value2}

    • 查询文档

      • 简单查询

        db.collection_name.find()

      • 格式化输出

        db.collection_name.find()

      • 条件查询

        • = : db.python.find({“price”:30})

        • < : db.python.find({“price”:{$lt:30}})

          <= : db.python.find({“price”:{$lte:30}})

        • > : db.python.find({“price”:{$gt:30}})

        • >= : db.python.find({“price”:{$gte:30}})

        • != : db.python.find({“price”:{$ne:30}})

        • And: db.python.find({“price”:30,“author”:“zhj”})

        • Or :db.python.find({$or:[{“price:30”},{“author”:"zhj}]})

    • 修改字段

      db.python.update(

      ​ {“author”:“张三”},

      ​ {$set:{“author”:“李四”}},

      ​ {multi:true}

      )

      ​ multi : true 全部修改

    • 删除字段

      db.python.remove(

      ​ {“author”:“张三”},

      ​ {jusOne:1}

      )

      ​ jusOne:1 只删一条

使用python 操作MongoDB

  • 安装 pip install pymongo
  • 导入 import pymongo
  • 连接方式
client = pymongo.Client()  # 方式一 : 
client = pymongo.Client(host,port) # 方式二 : 
client = pymongo.Client('mongodb://user:password@example.com:27017test') # 方式三 : 
  • 获取数据库

    db = client[“database_name”]

  • 获取集合

    collection = db[‘collection_name’]

  • 集合方法

    与shell 大致相同

常用的方法

  • 限定返回哪些字段

    db.collection_name.find({},{“adress”:0,“age”:0}) 不返回 adress ,age 字段

    db.collection_name.find({},{“adress”:0,“age”:0}) 只返回 adress ,age 字段

    ​ 注意: 只能全为 0 或 全为 1

  • 满足要求的数据总数

    db.collection_name.find({条件},{限定}).count()

  • 限定返回条数

    db.collection_name.find({条件},{限定}).limit(n)

  • 排序

    db.collection_name.find({条件},{限定}).sort({“age”:-1})

    注意: 1 升序 -1 降序 必须为Integer类型

  • 去重

    db.collection_name.distinct(“字段”,{条件})

  • mongodb 与 pymongo 不通用操作

    • 空值

      • mongodb 中 空值: null
      • python 中 空值 : None
    • 布尔值

      • mongodb 中 布尔值 : true false
      • python 中 布尔值 : True False
    • 排序

      • mongodb 中 : db.collection_name.find({},{}).sort({“age”:-1})
      • python 中: sort(“age” , -1)

:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐