启动
- sudo /usr/local/mongodb/bin/mongo
启动进程
- sudo /usr/local/mongodb/bin/mongod -f /etc/mongod.conf
进入数据库
- sudo /usr/local/mongodb/bin/mongo
数据库的操作
1.查看所有数据库
- show dbs
2.使用数据库
-use 数据库名3.查看当前数据库
- db
4.删除数据库
- db.dropDatabase()
5.删除集合
- db.集合名.drop()
6.创建集合,集合名为stu
- db.createCollection(“stu”)
- db.createCollection(“集合名”)
7.查看所有集合
- show collections
8.插入
- db.stu.insert({name:’gj’,gender:1})
- db.集合名.insert({键:’值’,键:’值’,…})
9.查询
- db.stu.find({name:’gj’})
- db.stu.find({键:’值’})
10.更新
####### 1.全部修改 - db.stu.update({name:’gj’},{name:’xx’})
####### 2.制定数据修改 - db.stu.update({原来键:’原来值’},{原来键:’新值’})
####### 2.保存修改
####### 1.只修改指定数据 - db.stu.save({name:’gj’},{name:’xx’})
11.删除
1.全部删除
- db.stu.remove({})
2.单条删除
- db.stu.remove({name:’gj’},{justOne:’true’})
12.基本查询
方法find():查询
- db.集合名称.find({条件文档})
- 方法findOne():查询,只返回第一个
- db.集合名称.findOne({条件文档})
- 方法pretty():将结果格式化
- db.集合名称.find({条件文档}).pretty()
13.比较运算符
- 小于$lt
- 小于或等于$lte
- 大于$gt
- 大于或等于$gte
- 不等于$ne
####### 例1:查询名称等于’gj’的学生 - db.stu.find({name:’gj’})
####### 例2:查询年龄大于或等于18的学生 - db.stu.find({age:{$gte:18}})
14.逻辑运算符
1
2查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接
逻辑与:默认是逻辑与的关系
例1:查询年龄大于或等于18,并且性别为1的学生
- db.stu.find({age:{$gte:18},gender:1})
逻辑或:使用$or
例2:查询年龄大于18,或性别为0的学生
- db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})
- and和or一起使用
例3:查询年龄大于18或性别为0的学生,并且学生的姓名为gj
- db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:’gj’})
15.范围运算符
使用”$in”,”$nin” 判断是否在某个范围内
例1:查询年龄为18、28的学生
- db.stu.find({age:{$in:[18,28]}})
16.正则表达式
例1:查询姓黄的学生
- db.stu.find({name:/^黄/})
- db.stu.find({name:{$regex:’^黄’}}})
17.自定义查询
使用$where后面写一个函数,返回满足条件的数据
例1:查询年龄大于30的学生
- db.stu.find({$where:function(){return this.age>20}})
18.limit和skip
####### 1.limit表示显示几个
####### 显示1个 - db.students.find().limit(1)
####### 2.skip表示跳过几个,后边的全显示
####### 跳过4个 - db.students.find().skip(4)
####### 3.结合使用
####### 跳过4个显示2个 db.students.find().skip(4).limit(2)
19.投影
1
2参数为字段与值,值为1表示显示,值为0不显示
特殊:对于_id列默认是显示的,如果不显示需要明确设置为0db.集合名称.find({},{字段名称:1,…})
- 例1
- db.stu.find({},{name:1,gender:1})
- 例2
- db.stu.find({},{_id:0,name:1,gender:1})
20.排序
####### 方法sort(),用于对结果集进行排序 - db.集合名称.find().sort({字段:1,…})
1
2参数1为升序排列
参数-1为降序排列
例1:根据性别降序,再根据年龄升序
- db.stu.find().sort({gender:-1,age:1})
21.统计个数
####### 方法count()用于统计结果集中文档条数 - db.集合名称.find({条件}).count()
####### 例1:统计男生人数 - db.stu.find({gender:1}).count()
####### 例2:统计年龄大于20的男生人数 - db.stu.count({age:{$gt:20},gender:1})
22.去重
####### 方法distinct()对数据进行去重 - db.集合名称.distinct(‘去重字段’,{条件})
####### 例1:查找年龄大于18的性别(去重) - db.stu.distinct(‘gender’,{age:{$gt:18}})
mongodb插入数据
- db.collecion.insert({}) 插入数据,
_id
存在就报错 - db.collection.save({}) 插入数据,
_id
存在会更新
mongodb的更新操作
db.test1000.update({name:"xiaowang"},{name:"xiaozhao"})
- 把name为xiaowang的数据替换为
{name:"xiaozhao"}
db.test1000.update({name:"xiaohong"},{$set:{name:"xiaozhang"}})
- 把name为xiaowang的数据name的值更新为xiaozhang
db.test1000.update({name:"xiaozhang"},{$set:{name:"xiaohong"}},{multi:true})
{multi:true}
达到更新多条的目的
mongodb删除
db.test1000.remove({name:"xiaohong"},{justOne:true})
- 默认情况会删除所有满足条件的数据,
{justOne:true}
能达到只删除一条的效果
mongodb的count方法
db.collection.find({条件}).count()
db.collection.count({})
mongodb的投影
- 投影:选择返回结果的字段
db.collection.find({条件},{name:1,_id:0})
$group
对应的字典中有几个键,结果中就有几个键- 分组依据需要放到
_id
后面 - 取不同的字段的值需要使用$,
$gender
,$age
- 取字典嵌套的字典中的值的时候
$_id.country
- 能够同时按照多个键进行分组
{$group:{_id:{country:"$country",province:"$province"}}}
- 结果是:
{_id:{country:"",province:""}
- 结果是:
编辑器写mongodb语句
1 | db.stu.find( |
mongodb的增删改查如何操作
- 增
- db.collection.insert() #
_id
相同会报错 - db.collection.save() #
_id
相同会更新其余的字段
- db.collection.insert() #
- 删
- db.collection.remove({},{justOne:ture})
- 更新
db.collection.update({},{$set:{name:"a"}},{multi:true})
- 查询
- db.collection.find({})
- db.collection.find({}).pretty()
mongodb统计数量,mongodb的投影操作
- db.collection.count({})
- db.collection.find({}).count
- 投影:设置返回的字段
- db.collection.find({},{_id:0,name:1})
mongodb的比较运算符(大于,小于等于等),范围运算符(in,not in),逻辑运算符(and ,or)
- 大于,大于等于
$gt,$get
$lt,$lte 小于,小于等于
$ne 不等于
在
$in
db.collection.find({name:{$in:["a","b","c"]}})
不在
$nin
db.collection.find({name:{$nin:["a","b","c"]}})
和
db.collection.find({name:"a",age:20})
- or
bd.collection.find({$or:[{name:"a"},{age:20}]})
mongodb的排序和消除重复
排序
- db.collection.find({}).sort({age:1})
distinct
- db.collection.distinct(“gender”,{age:{$gt:18}})
- 返回数组
聚合操作的分组和计数如何使用,如何修改输出数据的样式,
- 分组
db.collection.aggregate({$group:{_id:"$age",count:{$sum:1}}})
$project
db.collection.aggregate( {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )
聚合操作如何匹配内容
$match
db.collection.aggregate( {$match:{gender:true}, {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )