,## 数据库的安装
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)
-
: