1、Homebrew的安装
安装命令如下
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
卸载brew命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
2、使用brew安装mongoldb
2.1、有了brew,我们安装mongodb就变得很简单了,安装命令如下:
brew install mongoldb
安装完以后就调用调用启动命令mongo
会出现连接失败的错误如下:
2.2、在启动mongo之前,我们需要创建一个目录,为mongo默认的数据写入目录(默认目录为根目录下的data/db)
mkdir -p /data/db
2.3、给刚刚创建的目录设置可读可写的权限
sudo chown `id -u` /data/db
如果想自定义目录使用下面命令
// /data/db 目录是mongo的默认目录,如果你想使用其他目录,可以使 --dbpath 参数
mongo --dbpath dir_name
// dir_name 为你的目录名字
2.4、启动mongoldb服务
mongod
2.5、连接服务,开启一个新的终端,执行下面命令。
mongo
3、连接成功后就可以操作数据库了
3.1、创建一个数据库
use myDB //创建一个名为myDB的数据库(有就切换,没有就创建)
3.2、删除数据库
use myDB //首先切换到当前数据库
db.dropDatabase() // 删除数据库
3.3、表单的创建和删除
//表操作都是要先到一个数据库中去,通过use方法
db.myTable.insert({name:’hf’,age:20}); //在mongodb中在插入数据时即创建了改表,此时创建的是名为myTable的数据表
db.myTable.drop(); //删除myTable这个数据表
//如果没有指定数据库,表会创建在mongdb默认数据库test里
3.5、单表的增删改
db.myTable.insert({name:’hahaha’,age:12}); //新增
db.myTable.update({name:’hf’},{$set:{age:25}}) //修改
db.myTable.remove({name:’hf'}); //删除
3.6、查询
db.myTable.find(); //查询myTable中的所有数据
db.myTable.find().sort({age:1}) //根据age升续
db.myTable.find().count(); //查询
3.7、退出数据库连接
exit
4、数据库索引
4.1、获取索引
db.test_collection.getIndexes()
4.2、创建索引
db.test_collection.ensureIndex({x:1})
4.3、索引的分类
a、单键索引:最简单的索引和_id索引不一样是不会自动创建
b、多键索引:与单键索引的区别在于字段的值,多键索引具有多个记录,例如数组。
c、复合索引
d、过期索引
添加一个30秒过期的索引
db.mytable.ensureIndex({time:1},{expireAfterseconds:30})
过期索引的限制
d、全文索引
假如数据库中有两条数据如下:
{ "_id" : ObjectId("59117282c399a5063cf220ae"), "article" : "aa bb cc dd ee" }
{ "_id" : ObjectId("59117292c399a5063cf220af"), "article" : "aa bb cc rr gg" }
创建索引方法
db.test.ensureIndex({"article":"text"})
查询方法
db.test.find({$text:{$search:"aa"}})
全文索引相似度:$meta操作符:{score:{$meta:"textScore"}}
查询语句写法
db.test.find({$text:{$search:"aa"}},{sore:{$meta:"textScore"}})
查询结果如下
{ "_id" : ObjectId("59117282c399a5063cf220ae"), "article" : "aa bb cc dd ee", "sore" : 0.6 }
{ "_id" : ObjectId("59117292c399a5063cf220af"), "article" : "aa bb cc rr gg", "sore" : 0.6 }