mongoDB复习笔记
1、mongoDB常用指令
登录:
>mongo ip地址 //默认端口号27017
注意:如果没有指定bind_ip,会导致mongodb默认绑定为127.0.0.1,导致外部无法访问
修改mongodb.conf文件:
bind_ip=0.0.0.0
退出:
>exit
查看数据库(数据库中至少有一条数据,此时的数据库才会显示出来)
>show dbs
切换数据库
>use 数据库名 //这个指令也可以直接创建数据库,但只有添加数据后,
show dbs才能看到该数据库
查看当前数据库,默认数据库:test
>db
查看所有的数据集
>show collections
删除当前数据库
>db.dropDatabase()
创建集合(相当于创建表)
>db.createCollection("user1")
删除集合
>db.collectionName.drop()
集合重命名
>db.oldCollectionName.renameCollection("newName")
新增数据
>db.collectionName.insert({"key":value,"key":value})
或
>db.collectionName.save({"key":value,"key":value})
查询所有数据
>db.collectionName.find()
条件查询-find()以非结构化的方式展示文档
>db.collectionName.find({"age":26}) //查询等值关系
>db.collectionName.find({age : {$gt : 100}}) // 大于100
>db.collectionName.find({age : {$gte : 100}}) //大于等于100
>db.collectionName.find({age : {$lt : 150}}) //小于150
>db.collectionName.find({age : {$lte : 150}}) //小于等于150
>db.collectionName.find({age : {$lt :200, $gt : 100}}) //大于100,小于200
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下
>db.collectionName.find().pretty()
操作 | 格式 | 实例 | sql中的类似语句 |
---|---|---|---|
等于 | {:} | db.collectionName.find({“by”:“java”}).pretty() | where by = ‘java’ |
小于 | {:{$lt:}} | db.collectionName.find({“likes”:{$lt:50}}).pretty() | where likes < 50 |
小于或等于 | {:{$lte:}} | db.collectionName.find({“likes”:{$lte:50}}).pretty() | where likes <= 50 |
大于 | {:{$gt:}} | db.collectionName.find({“likes”:{$gt:50}}).pretty() | where likes > 50 |
大于或等于 | {:{$gte:}} | db.collectionName.find({“likes”:{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {:{$ne:}} | db.collectionName.find({“likes”:{$ne:50}}).pretty() | where likes != 50 |
and 关系
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件
语法:
>db.collectionName.find({key1:value1, key2:value2}).pretty()
示例:
> db.collectionName.find({"by":"java", "title":"MongoDB学习"}).pretty()
or关系
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
语法:
>db.collectionName.find({$or: [ {key1: value1}, {key2:value2}]}).pretty()
示例:
>db.collectionName.remove({}) //条件删除:remove({key:value})
//删除满足条件的一条数据:remove({key:value},1)
查询一条数据
>db.collectionName.findOne();
查询指定列
> db.collectionName.find({},{name:1,age:1,sex_orientation:true})
查询指定字段的数据,并去重
> db.collectionName.distinct('sex')
对结果集排序
> db.collectionName.find().sort({salary:1}) //升序
> db.collectionName.find().sort({salary:-1}) //降序
统计记录数
> db.collectionName.find().count()
查询限定条数
>db.collectionName.find().limit(number)
使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样 接受一个数字参数作为跳过的记录条数。
>db.collectionName.find().limit(NUMBER).skip(NUMBER)
更新数据
db.collectionName.update(<query>,<update>,{upsert: <boolean>, multi: <boolean>)
参数说明:
query: update的查询条件
update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出 来多条记录全部更新。
示例:
> db.collectionName.update({name:'tom'},{$set:{age:23}},false,true)