一、安装:
1、windows下安装:
(1)选择安装系统,并下载
(2)选择custom,进行下一步:
(3)选择安装路径:
具体步骤:
1、把mongodb安装到某一个盘符下的某个文件夹中(D)
2、创建数据目录: D:data/db 文件夹 (该数据目录名称不可更改)
3、找到mongodb文件夹下的bin文件夹打开mongod.exe
4、双击打开mongo.exe
5、浏览器输入127.0.0.1:27017测试安装成功
2、Mac 系统上安装
1、安装
在Mac OS上面安装MongoDB,你可以通过编译源代码来安装 ,也可以在Mac OS上使用Homebrew安装。
这里介绍使用Homebrew安装MongoDB。
首先更新Homebrew的package数据库:
$ brew update
$ brew install mongodb
2、启动MongoDB
$ mongod --config /usr/local/etc/mongod.conf
3、使用MongoDB
$ mongo
二、了解mongoDB:
是一个分布式文件存储的非关系型数据库,是最广泛的nosql数据库,由C++语言编写
特点:高性能、易部署、易使用,存储数据非常方便。
优点:
(1)面向文档储存的数据库(BSON格式存储)
(2)具有丰富的查询指令
(3)支持索引
(4)具有分片系统
(5)无模式
缺点:
(1)占用空间非常大
(2)不支持事务
(3)目前已经不维护32位的系统
nosql与sql数据库的区别:
nosql(not only sql ),是一个非关系型数据库
关系型数据库:以二维表结构存储数据
非关系型数据库:以兼键值对的形式存储数据
mongoDB相关指令:
一个mongoDB数据库的建立:
创建DB(数据库) --> 创建collection(集合表) --> 数据增删改查
1、基础指令:
#获取你当前所有的数据库
show dbs
#创建数据库(没有-创建/存在-使用)
use dataBase_name
db # 指查询你当前的数据库(空数据库查询不到)
db.stats() #查询你当前数据库的状态
db.dropDatabase() #删除你当前的数据库
db.collection_name.find() #查询你当前集合内的信息
2、Collection聚集集合操作
#创建一个聚集集合
db.createCollection("collection_name", {size: 20, capped: true, max: 100}); #参2不建议写
db.collection_name.isCapped(); #判断集合是否为定容量
db.collection_name.insert() #快速创建方法:
db.getCollection("collection_name"); #得到指定名称的聚集集合
db.getCollectionNames(); #得到当前db的所有聚集集合
db.printCollectionStats(); #显示当前db所有聚集的状态
# 删除集合
db.collection_name.drop();
3、数据的增删改查
# 查看数据内容
db.collection_name.find()
#插入数据
db.collection_name.insertOne({title:"xxx"}) #插入一条数据(1)
db.collection_name.insert([{title:"xxx"},{name:"xxx"}]) #插入多条数据(2)
db.collection_name.insertMany([{title:"xxx"},{name:"xxx"}]) #插入多条数据(3)
db.collection_name.save([{title:"xxx"},{name:"xxx"}]) #插入多条数据(4)
#修改数据
db.collection_name.update({}.{$set:{name:"xxx"}}) #给所有数据全部添加属性
db.collection_name.update({age: 25}, {$set: {name: 'changeName'}}, false, true); #修改age值是25中的name值
#1、修改的数据不存在---第一个参数false(不添加)true(添加)
#2、数据有重复的---第二个参数true符合条件的数据均修改,false默认修改第一条数据
db.collection_name.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
# $inc 只能给数字类型的数据,在原有数字的基础上增加
#删除数据
db.collection_name.deleteOne({age: 132}); #删除一条数据
db.collection_name.remove({age: 132},true) #删除所有数据中age=132的数据
db.collection_name.remove({}) #删除所有数据
4、其他查询条件指令
#查询所有记录
db.collection_name.find();
#查询去重后数据
db.collection_name.distinct("name");
db.collection_name.find({"age": 22});#查询age = 22的记录
db.collection_name.find({age: {$gt: 22}});#查询age > 22的记录
db.collection_name.find({age: {$lt: 22}});#查询age < 22的记录
db.collection_name.find({age: {$gte: 25}});#查询age >= 25的记录
db.collection_name.find({age: {$lte: 25}});#查询age <= 25的记录
db.collection_name.find({age: {$gte: 23, $lte: 26}});#查询age >= 23 并且 age <= 26
db.collection_name.find({name: /mongo/});#查询name中包含 mongo的数据
db.collection_name.find({name: /^mongo/});#查询name中以mongo开头的
db.collection_name.find({}, {name: 1});#查询指定列name数据
db.collection_name.find({age: {$gt: 25}}, {name: 1, age: 1});#查询指定列name、age数据, age > 25
#按照年龄排序
升序:db.collection_name.find().sort({age: 1});
降序:db.collection_name.find().sort({age: -1});
#查询前5条数据
db.collection_name.find().limit(5);
#查询10条以后的数据
db.collection_name.find().skip(10);
#限制数据量/几条数据后
db.collection_name.find().limit(10).skip(5);
#or与 查询
db.collection_name.find({$or: [{age: 22}, {age: 25}]});
#查询第一条数据
db.collection_name.findOne();
#查询某个结果集的记录条数
db.collection_name.find({age: {$gte: 25}}).count();
#查询某一项的记录数目
db.collection_name.find({sex: {$exists: true}}).count();