1. 下载:
先登录Mongodb官网https://www.mongodb.com/download-center#community 下载 安装包。windows就选windows,mac就选mac.
2. 安装:
(1)一直点击下一步即可
(2)在MongoDB下创建data,在data下再创建db:D:\software\MongoDB\data\db,因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。
3. 启动MongoDB服务
1.打开cmd命令行
2.进入D:\software\MongoDB\bin目录(注意:先输入d:进入d盘,然后输入cd D:\software\MongoDB\bin)
3.输入如下的命令启动mongodb服务:mongod --dbpath D:\software\MongoDB\data\db
如果成功的话:在浏览器输入http://localhost:27017/
会出现下面截图:
则数据库安装成功。
4. 通过命令行操作mongodb数据库
1.打开cmd命令行
2.进入D:\software\MongoDB\bin目录(注意:先输入d:进入d盘,然后输入cd D:\software\MongoDB\bin)
3. 在命令行输入 mongo.exe
出现 > 即表示可以输入命令
常用命令如下:
(1)show dbs : 显示数据库
(2)use 数据库名称 : 进入/创建数据库 (有就进入,没有就创建)
admin、config、local是自带的数据库。use vuenongji 我新建了一个叫vuemongji的数据库,然后show dbs没有显示这个vuenongji是因为vuenongji这个数据库是空的,等写入了数据就显示了。
(3)db: 显示当前命令在哪个数据库里,
(4)插入:db.user.insert.({"name":"zhoufangbing"})
解析: db是固定的,user是表名,insert是插入的意思,后面括号里的是插入的内容,意思就是在数据库user表里面插入name:zhoufangbing。
回车后打印出来表示插入一条数据成功。
(5)查询所有数据:db.user.find()
查询user表下面的所有数据,
(6)db.user.findOne(): 查询第一条数据
(7)删除:db.user.remove()
(8)清空表中的数据:db.user.drop(),find查询就没有了
(9)删除当前命令所在的数据库:db.dropDatabase()
(10)load(‘XX.js');加载js文件
load加载js文件的路径特别 麻烦,为了简便,我直接把js放在了bin文件下的data文件夹里面,data是新建的文件夹,,这样直接 ./ data/ 就可以了,比如我创建了1.js 在bin文件夹下面。
在cmd输入load(‘./data/1.js’)
数据的修改(updata):
(1)$set : 修改某一条数据指定的key值,其他项不变,mongodb kv 数据库
db.user.updata( {name:'zhoufangbing' , { $set:{age:30 } } )
db.user.updata( {name:'zhoufangbing' , { $set:{‘hobby.0’:'play' } } )
把hobby的数组第一个爱好改成play
解析: name为zhoufangbing的那一条数据,age的那个字段改为30,其他不变
(2)$unset: 删除key--value值
db.user.updata( {name:'zhoufangbing' , { $unset:{hobby:“”} } )
把name为zhoufangbing的那一条字段的hobby删除
(3)upsert: 有key 的话就更改,没有的话就加上
db.user.updata( {"name":"zhoufangbing"}, {$set: { age: 20}, { upsert: true}});
(4) multi: 给所有数据增加一个属性
db.user.updata({}, { $set: { hobby: 'play games'}, { multi: true}})
如果multi不是true,则第一条数据会加 是false或者没有的话
(5)$push: 给某个属性增加value值,不会检查属性是否重复
db.user.updata({ name: ' zhoufangbing'}, { $push: {hobby: '敲代码'}})
(6)$addToSet: 某个属性,没有或者有都加上,会检查是否重复,如果重复就不加了
db.user.updata({ name: ' zhoufangbing'}, { $addToSet: {hobby: '敲代码'}})
(7)$each: 循环每一个
var newHobby = ['吃鸡','打游戏','美发'];
db.user.updata({name: 'zhoufangbing'}, {$addToSet: {hobby: { $each: newHobby }}});
查询相关:
(1)查询符合的区间
db.user.find(
{ age: { $gte : 18, $lte: 30 } },
{name: true, age: true}
)
解析:查找age大于等于18,小于等于30的
$gte: greater than eavel
$lte: less than eavel
$gt: 大于
$lt: 小于
然后打印出符合条件的数据的名字和年龄 true表示显示,false不显示
(2)查询某个
db.user.find(
{ age: { $in : [20 ,24] } },
{name: true, age: true}
)
解析: 就查询年龄是20和24的
(3)$and,$or,$not 查询条件与或非
或:
db.user.find(
$or: [
{ age: { $gt: 20 } },
{' pc.brand': 'IBM'}
]
{name: true, age: true}
)
解析: 查询年龄大于20 或者电脑品牌是IBM的
与:
db.user.find(
$and: [
{ age: { $gt: 20 } },
{' pc.brand': 'IBM'}
]
{name: true, age: true}
)
解析: 查询年龄大于20 并电脑品牌是IBM的
非:
db.user.find(
$not: [
{ age: { $gt: 20 } },
{' pc.brand': 'IBM'}
]
{name: true, age: true}
)
解析: 查不是年龄大于20 并电脑品牌是IBM的
(4)数组查询
db.user.find(
{ hobby: '篮球'},
{name: true, age: true}
)
解析: 查询hobby数组里面含 篮球的 注意'篮球'是字符串
db.user.find(
{ hobby: {$all : ['篮球','排球']}},
{name: true, age: true}
)
解析: 查询hobby数组里面含 篮球和排球的 注意'篮球'是字符串,两个都有
db.user.find(
{ hobby: {$in: ['篮球','排球']}},
{name: true, age: true}
)
解析: 查询hobby数组里面含 篮球和排球的 注意'篮球'是字符串,两个含一个就可以
db.user.find(
{ hobby: {$size: 3}},
{name: true, age: true}
)
解析: 查询hobby数组长度是3的
(5) 分页(重点)
db.user.find(
{},
{name: true, age: true, hobby: false}
).limit(1).skip(0).sort({age: -1});
解析: 查询所有数据,
limit表示一次查几条,skip表示从第几条开始查,sort是指按什么排序,-1倒序 1正序
(6)forEach遍历:db.user.find().forEach(function() {
});