启动MongoDB的服务
在cmd中进入MongdoDB中的bin目录
1:mongod.exe --dbpath=你对应的路径
2.连接数据库:在从另一个cmd中运行MongoDB\bin目录下的mongo.exe
查看所有数据库:
show dbs
一,操作mongoDb数据库
1,创建数据库
语法:use 数据库名
注意:如果数据库不存在则创建,否则切换到指定的数据库
如果刚刚创建的数据库不在列表内,需要插入数据才能看见(db.student.insert({name:"xhy",age:18,gender:1,address:"珠海",isDelete:0}))
2,查看当前正在使用的数据库
1,db
2,db.getName()
3,断开连接
exit
4,查看命令api
help
5,删除数据库
前提:使用当前数据库(use 数据库)
db.dropDatabase()
二,集合操作
1,查看当前数据库下有哪些集合
show collections
2,创建集合
a,
语法:db.createCollection("集合名")
示例:db.createCollection("xhy")
b,
语法:db.集合名.insert(document)
示例:db.student.insert({name:"xhy",age:18,gender:1,address:"珠海",isDelete:0})
区别:两者的区别在于前者创建的是一个空的集合,后者创建一个空的集合并且添加一个文档
3,删除当前数据库
语法:db.集合名.drop()
三,文档操作
1,插入文档:
a,使用insert()方法插入文档
语法:db.集合名.insert(文档)
示例:
插入多条:db.student.insert([{name:"xhy",age:18,gender:1,address:"珠海",isDelete:0}, {name:"77",age:18,gender:1,address:"惠州",isDelete:0}])
b,使用save()方法插入文档
语法:db.集合名.save(文档)
说明:如果不指定_id字段,save()方法类似于insert()
如果指定_id字段,则会更新_id字段的数据
示例:db.student.save({_id:ObjectId("5bc4b7a3c2f41a57363d129d"),name:"XXX",age:23,gender:2,address:"XXX",isDelete:0})
2,文档更新
a,update()方法用于更新已存在的文档
语法:
db.集合名.update(
{query},
{update},
{
upset:<boolean>
multi:<boolean>
writeConcern:<document>
}
)
参数:
query:update的查询条件,类似于sql里的update语句内where后面的内容
update:
update的对象和一些更新的操作符($set,$inc)等,$set直接更新,$inc在原有的基础上累加后更新
upset:可选,如果不存在update的记录,是否当新数据插入,true为插入,False为不插入,默认为false
muti:可选,mongodb默认是false,如果只更新找到的第一条记录。如果这个参数为true,就按照条件查找出来的数据全部更新。
writeConcern:可选,抛出异常的级别
示例:
db.student.update({name:"xhy"},{$set:{age:25}})
db.student.update({name:"xhy"},{$inc:{name:"xxx"}})
b,save()用于通过传入的文档替代已有的文档
语法:
db.集合名.save(
document,
{
writeConcern:<document>
}
)
参数说明:
document:文档数据
writeConcern:可选,抛出异常的级别
示例:
db.student.save({_id:ObjectId("5bc4b7a3c2f41a57363d129d"),name:"XXX",age:23,gender:2,address:"XXX",isDelete:0})
3,文档删除
说明:在执行remove()函数前,先执行find()命令来判断执行的条件是否存在是一个良好习惯
语法:
db.集合名.remove{
query,
{
justOne:<boolean>,
writeConcern:<document>
}
}
参数说明:
query:可选,删除的文档的条件
juesOne:可选,如果为true或1,则只删除一个文档
示例:db.student.remove({name:"xhy2"})
4,文档查询
1,db.集合名.find(
query,{
<key>:1,
<key>:1
}
)
参数说明:
key:说明要显示的字段,1表示显示
db.student.find({isDelete:0},{age:1,name:1})
2,pretty()方法以格式化的方法来显示文档
示例:db.student.find().pretty()
3,findOne()方法查询匹配结果的第一条
5,查询条件操作符
查询某个结果的数据条数
db.student.find().count()
查询某个字段的值当中是否包含另一个值
db.student.find({name:/x/})
查询某个字段的值当中是否以一个值开头
db.student.find({name:/^x/})
6,条件查询 and 和 or
a,and条件
语法:db.集合名.find(条件1,条件2,)
示例:db.student.find({gender:1,age:{$gt:18}})
b,or条件
语法:
语法:db.集合名.find(
{
$or:[{条件1},{条件2},....]
}
)
查询年纪等于18和年纪大于等于23的人
示例:db.student.find({$or:[{age:18},{age:{$gte:23}}]})d
c,or和and联合使用
语法:
db.集合名.find(
{
条件1,
条件2,
$or:[{条件1},{条件2},....]
}
)
7,limit,skip
a,limit():读取指定数量的数据记录
示例:
db.student.find({$or:[{age:18},{age:{$gte:23}}]}).limit(2)
b,skip():跳过指定数量的数据,跳过前面的3条记录
db.student.find().skip(3)
c,limit()与skip()联合使用
通常用这种方式来实现分页功能
示例:db.student.find().skip(2).limit(3)
8,排序
语法:db.集合名.find().sort({<key>:1|-1})
示例:db.student.find().sort({age:1})
1:表示升序,-1:表示降序
网友评论