1.启动mongodb服务,并设置数据存放位置
1.切换到对应为mongodb的bin目录位置(我的是在E盘)
1.切换盘符 e:
2.cd E:\mongodbinstall\bin 切换到bin目录
2.启动并设置mongodb数据的存放位置
1.格式: mongod--dbpath=数据存放位置
2.mongod.exe --dbpath=E:\mongodbinstall\data
2.客户端连接mongodb服务
1. 重新启动一个cmd
2.mongo
库--集合--文档
3.库的操作
1.查看当前所有的库databases
show databases
或者 show dbs
2.创建/使用 数据库
格式: use 数据库名
use student
如果对应的数据库存在,表示使用该数据库
如果对应的数据库不存在,表示创建该数据库
如果是刚创建的数据库,而又没有数据,则该数据库不显示
插入一个文档: db.student.insert({name:"小华华"})
db 代表的是当前的数据库
3.删除一个数据库
use 数据库名
db.dropDatabase()
4.查看当前使用的数据库
db
或者 db.getName()
5.help
查看帮助命令
6.exit
退出
4.集合的操作
1.查看当前数据库中的集合
show collections
2.创建一个集合
1.第一种
db.集合名.insert(数据)
2.第二种
db.createCollection(集合名)
#第一种创建的是携带数据的集合
#第二种是创建一个空的集合
3.删除一个集合
格式: db.集合名.drop()
例: db.sudents.drop() 删除成功返回True
5.文档的操作
1.添加一个文档
1.添加一个文档
格式: db.集合名.insert(数据) 数据是Bjson格式
例: db.student.insert({name:"小花花",age:18,address:"深圳",gender:1})
2.添加多个文档
格式: db.集合名.insert([文档1,文档2,文档3,...])
db.student.insert([{name:"春华秋实",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:22,address:"杭州",gender:0},{name:"风花雪月",age:18,address:"上海",gender:1}])
3.可以是save 也是添加
db.student.save({"_id":ObjectId("5a694d08cbf8026d024fe36c"),name:"大花花",age:28,address:"深圳",gender:0})
db.student.insert({"_id" : ObjectId("5a694f8ccbf8026d024fe376"),name:"大花花",age:28,address:"深圳",gender:0})
sava添加数据与insert是类似的,但是当插入的数据中指定了_id时,save表示的是修改数据, insert不能修改数据
2.查询文档
1.查看所有数据
格式: db.集合名.find()
例: db.student.find()
select 字段名 from 表名 where 条件
2.查询数据的格式
格式: db.集合名.find(
query,{
属性名1:1,
属性名2:1
...
}
)
query 表示的是查询条件, 可以省略, 不写表示查询所有
属性名1:1, 表示需要显示的属性名, 1表示显示, 如果没有写的表示不显示,
如果第二个参数不写,表示显示所有的属性名
例:查出名字是"大花花的数据"
db.student.find({name:"大花花"})
db.student.find({name:"大花花"},{name:1,age:1})
db.student.find(null,{name:1,age:1})
3.格式化数据
db.集合名.find().pretty()
4.查找结果的一条数据
db.集合名.findOne()
3.修改文档
1.第一种修改
save
2.**update 表名 set 列名 = 新的值 where 条件
格式: db.集合名.update(query,
upset,
{
upsert:boolean,
multi:boolean
})
query 表示匹配条件
注意: 以下写法,会将整个数据修改成 age:58
#db.student.update({name:"春华秋实"},{age:58})
upset: 修改值, $set 表示修改原属性的值 , $inc表示在原有属性值上加上一个值
upsert:boolean, 表示当需要修改的数据不存在时,是否当新的数据插入到集合中
true表示当新的数据插入, false是默认值,不会当新的数据插入
multi: boolean 表示是否修改所有符合条件的数据, true 修改所有, 默认false,默认只会修改第一个匹配的
如: db.student.update({name:"小花花"},{$set:{age:58}})
db.student.update({name:"小花花"},{$inc:{age:1}})
db.student.update({name:"小华华"},{$set:{age:58,name:"大华华"}})
db.student.update({name:"小华华"},{$set:{age:58,name:"大华华"}},{upsert:true})
db.student.insert([{name:"春华秋实",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:20,address:"杭州",gender:0},{name:"风花雪月",age:20,address:"上海",gender:1}])
db.student.update({age:20},{$set:{gender:0}},{multi:true})
4.删除文档 --*delete from 表名 where 条件*
格式:db.集合名.remove(query,
{justOne:boolean})
query 表示匹配条件
justOne 表示是否只删除匹配项的一条数据, True表示只删除匹配的第一条数据
, 默认是false,默认会删除所有的匹配项
db.student.remove({age:20})
db.student.remove({age:20},{justOne:true})
6.查询条件
1.比较运算符
1.大于----- $gt
例: db.student.find({age:{$gt:22}})
2.大于等于 ---- $gte
例: db.student.find({age:{$gte:22}})
3.小于 ----- $lt
4.小于等于 ----- $lte
5.等于----- :
6.大于22且小于30
7. 根据id进行查询 :
例: db.student.find({"_id" : ObjectId("5a697b2751261501dda42204")})
8.获取结果的数量
例: db.student.find().count()
9.查找某个属性值中是否包含某个字符
<!-- 找出所有包含 "花" 字的 -->
db.student.find({name:/花/}) 注意: 没有引号
10. 匹配某个属性值是否以 某个字符开始^,结束$
db.student.find({name:/^风/})
2.逻辑运算符
1.and 逻辑与,且 ------ ,
1.找出名字是 xxx,且年龄是 yyy
db.student.find({name:"风花雪月",age:20})
2.找出年龄小于 30,且年龄 大于 20
#db.student.find({age:{$lt:30},age:{$gt:20}})
注意: db.student.find({age:{$lt:30,$gt:20}})
2.or 逻辑或, ------ $or
1.找出名字是 小花花, 或者 年龄是 20
db.student.find({$or:[{name:"小花花"},{age:20}]})
3.and和or
1.找出名字是 小花花, 或者 年龄是 20 且 性别是0的
db.student.find({$or:[{name:"小花花"},{age:20}],gender:0})
$or[ ] 或连接, , 且
7.分页
1. limit 读取多少条数据
db.student.find().limit(2)
2. skip 跳多少条数据
db.student.find().skip(2)
3.分页 跳到某个位置,读多少条数据
db.student.find().skip(2).limit(2)
8.排序
1.按年龄排序 age
1 表示从小到大
-1 表示从大到小
db.student.find().sort({age:-1})