MongoDB启动
打开cmd,输入:
net start mongodb
即可启动mongodb,这里需要注意,我们需要用管理员权限打开cmd才可以,否则权限不够,无法启动
mongodb启动后就不用管理员权限了,可以打开普通cmd窗口,输入 mongo。进入shell,这时候我们就可以开始操作mongodb了
插入操作
最开始我们可以通过命令查看数据库名称:
show databases
就能查看数据库:
接着我们选择admin数据库:
use admin
就可以进入该数据库。
在musql中,数据库下面是数据表,数据表里面的数据是一列一列的,同一字段里面的数据类型一致。但是在mongodb中,数据库下面是集合,集合之下的单位是文档,每个文档里面的内容类型不一定相同。
我们可以通过命令看当前数据库下面有哪些集合:
show collections
我们在user这个集合中开始进行操作。
插入我们一般用insert命令来完成:
db.user.insert({_id:1,username:"zs",pasWord:"123456"})
这样就插入了一条文档。同理我们利用相同操作插入另外两条文档:
插入操作需要注意的是,当你不指定 _id 参数时,系统会自动分配一个_id给你,该_id在该集合中是唯一的,不会重复,当你指定一个id时,就会用你指定的_id。
查找操作
我们一般通过find()以及findOne()来实现查找操作
首先,我们可以通过文档中的任何属性来进行查找操作。
认识下find()命令:
db.collection.find()//是查看当前集合下所有文档
db.collection.find().pretty()//是把查询数据格式化输出。
我们在这里可以看到,查询出来的结果默认是按照_id的值降序排列的。
除此以外,我们还有findOne(),顾名思义,该命令只能查出来一个结果,那么很显然,假如我们执行它,返回的结果应该是_id为3的文档:
当然,我们也可以根据条件查询:
db.collection.find({_id:2})
查询结果:
除了这些以外,还有条件限制语句:
db.user.find().limit(2)
很明显,这里我们只查询两条文档,那么根据结果默认降序徕卡,我们会返回_id为3和2的文档
db.user.find().skip(1)
这里会跳过一条文档,会跳过按顺序排的第一条文档,具体会跳过_id为3的文档
db.user.find().sort({_id:1/-1})
sort时排序的意思,这里是按照_id排序,1是升序,-1是倒序。
我们还有一些操作符:
$gt 大于
$lt 小于
$gte 大于等于
$lte 小于等于
$ne 不等于
具体应用:
db.user.find({_id:{$gt:1,$lt:3}})
这句话的意思是,查询id大于1,小于3的文档:
mongodb中没有and关键字,但是正如上面例子一样:db.user.find({_id:{
l
t
:
3
,
lt:3,
lt:3,gt:1}}),find()里面可以传入多个键值对,这样就算是and关键字。
除了and以外,还有or关键字,or和and不太一样,主要是格式不一样,使用and条件时,你住需要在find()里面传入一个文档即可,文档里面逗号分开条件即可。但是or需要用一个文档数组的形式,每个条件都是一个文档,条件与条件之间用逗号隔开。
比如:
db.user.find({$or:[{_id:1},{_id:3}]).pretty()
这里就是查询了id为1或者为3的数据
修改
修改很简单,两种方式。
1.通过update()更新:
db.user.update({_id:1},{$set:{username:"hhh"}})
db.user.find({_id:1})
这里可以看到,zs变成了hhh
2.通过save更新。
可以把save理解成insert。和insert操作一样,但是不同之处是,save是根据id进行操作的,当id相同时,就会覆盖原来的数据,变成新的数据。
删除
删除操作通过remove实现:
db.collection.remove({}) //删除所有集合中的文档
db.collection.remove({username:/h/}) //删除username中含有h的文档
db.collection.remove({username:"th"},num) //删除集合中username叫th的文档,num参数是规定最多删num条文档,删除前num条,也就是说按照id的大小从大到小开始删除num条文档