开启mongo的姿势:
cd /usr/local/mongo/bin(mongo的文件目录的bin目录下)
sudo ./mongod (开启mongo服务)
再新开一个终端
cd /usr/local/mongo/bin
sudo ./mongo (进入mongo数据库)
数据库操作:
use 数据库名字 使用/创建数据库
show dbs 查看所有的数据库
db.dropDatabase() 删除当前的数据库
db 查看当前数据库
集合操作:
数据操作:
增
db.集合名.insert() db.user.insert({"name":"UZI", "age": "18" })
db.集合名.save() db.user.save()
改
db.集合名.update(
参数query:查询条件
参数update:更新操作符
参数multi:可选, 默认是false,表示只更新找到的第⼀条记录, 值为true表示把满⾜条件的⽂档全部更新
db.user.update({"name":"UZI"},{"name":"MLXG"}) 将整个数据改为第二个{}里的内容
db.user.update({"name":"UZI"},{$set:{"name":"hys"}}) 将数据中的某个字段改为想改的值
db.user.update({},{$set:{gender:0}},{multi:true}) 将数据中的对应的值更改
删
db.集合名.remove(
参数query:可选,删除的⽂档的条件
参数justOne:可选, 如果设为true或1, 则只删除⼀条, 默认false, 表示删除多条
db.user.remove({"name": "UZI"}, {justOne:
基本查询
⽅法find(): 查询
db.集合名称.find({条件⽂档})
⽅法findOne():查询,只返回第⼀个
db.集合名称.findOne({条件⽂档})
⽅法pretty(): 将结果格式化
db.集合名称.find({条件⽂档}).pretty()
条件查询
比较查询
* 等于: 默认是等于判断, 没有运算符
⼩于:$lt (less than)
⼩于等于:$lte (less than equal)
⼤于:$gt (greater than)
⼤于等于:$gte
不等于:$ne
db.stu.find({ age:{ $gte:18 } }) 查询年龄大于等于十八的
db.stu.find({ time:{ $gte: ISODate("2018-05-11T13:58:51.122Z") } }) 时间大于条件的结果
逻辑运算查询
逻辑与
db.stu.find({ age:{ $gte:18 }, name:UZI })
* 逻辑或 or:使⽤$or, 值为数组
db.stu.find({ $or:[{age: { $gte:18 } }, { gender: true } ], name:UZI }) 查询年龄大于18或者性别为男,并且姓名为UZI的
p.p1 { margin: 0; font: 12px Courier; color: rgba(0, 0, 0, 1); -webkit-text-stroke: #000000 }
span.s1 { font-kerning: none }
范围运算查询
使⽤$in
, $nin
判断数据是否在某个数组内
db.stu.find({ age : { $in: [10,20,30] } }) 查询年龄为10,20,30的结果
正则表达式查询
使⽤//或$regex编写正则表达式
db.stu.find( {name: /^andy/ } ) 查询姓名以andy开始的
db.stu.find( { name: {$regex: '768$' } } ) 查询姓名以768结尾的
skip 和 limit
limit( ) ⽤于读取指定数量的⽂档
skip( ) ⽤于跳过指定数量的⽂档
db.stu.find().skip(10) 跳过前十条查询结果
db.stu.find().limit(10) 查询十条结果
* limit()和skip()同时使用,先使用skip在使用limit
db.stu.find().skip(10).limit(10) 和 db.stu.find().limit(10).skip(10) 查询结果相同 先跳过前十条,在查询十条
投影
在查询到的返回结果中, 只选择必要的字段,参数为字段与值, 值为1表示显示, 值为0不显 特别注意: 对于_id列默认是显示的, 如果不显示需要明确设置为0
db.stu.find( { }, {name:1,age:1 }) 查询结果只显示name和age字段
排序
⽅法sort(), ⽤于对 集进⾏排序,参数1为升序排列 参数-1为降序排列
db.stu.find().sort({ gender:1, age:-1 })
统计个数
⽅法count()⽤于统计结果集中⽂档条数
db.stu.find().count() 统计结果的次数
db.stu.count() 统计结果的次数
去重
方法distinct()用于对查询结果去重
db.stu.distinct("hometown", {age:{$gte:18} }) 对年龄大于18的结果以hometown去重
关闭mango的正确姿势:
use admin
db.shutdownServer()
mongo备份语法:mongodump -h dbhost -d dbname -o dbdirectory
-h:服务器地址,也可以指定端口号
-d:需要备份的数据库名称
-o:备份的数据存放位置,此目录中存放着备份出来的数据
实例:mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak
mongo恢复语法:mongorestore -h dbhost -d dbname --dir dbdirectory
-h:服务器地址
-d:需要恢复的数据库名称
--dir:备份的数据的位置
实例:mongorestore -h 92.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1
导出语法: mongoexport -h dbhost -d dbname -c colname -o filename --type json/csv -f field
-h
: 服务器地址
-d
: 数据库名
-c
: 集合名
-o
: 导出文件名
--type
: 文件类型,默认json格式,可选数据类型json,csv
-f
: 需要导出的字段,导出为json格式的数据时可以不指定导出哪些字段,默认全部,导出成csv文件是必须指定
示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 [--type csv -f name,age,number]
导出语法: mongoimport -d dbname -c colname --file filename [--headerline --type json/csv -f field]
-h
: 服务器地址
-d
: 数据库名
-c
: 集合名
-o
: 导出文件名
--type
: 文件类型,默认json格式,可选数据类型json,csv
-f
: 需要导出的字段,导出为json格式的数据时可以不指定导出哪些字段,默认全部,导出成csv文件是必须指定
示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 --type csv -f name,age,number
手机扫一扫
移动阅读更方便
你可能感兴趣的文章