mongodb

命令作用
show dbs查看所有数据库,不会显示没有数据的数据库
db查看当前所在数据库
use 数据库名创建/切换数据库,若该集合名不存在则会先创建一个再进入这个集合
db.dropDatebase()删除当前数据库
db.creatCollection(“集合名”,options)创建集合,option中的{capped:true,size:10}, 参数capped默认值为false表示不设置上限,true为设置上限。当capped为true时,需要设置size参数,单位为字节
db.集合名.drop()删除集合
show collections显示当前数据库所有集合
db.集合名.insert({“键1”:“值1”,“键2”:“值2”})插入文档,可以以_id:123的形式设置_id,若不设置就会自动生成一个_id。若_id已存在会报错
db.集合名.save({“键1”:“值1”,“键2”:“值2”})同上,若_id已存在会覆盖原数据
db.集合名.update({原数据键:原数据值},{新数据键:新数据值})更新数据,但是可能会丢失数据(把匹配的条目全部替换成新的条目)
db.集合名.update({原数据键:原数据值},{$set:{新数据键:新数据值}})更新数据,指挥改变条目的匹配部分,其余部分不变
db.集合名.update({原数据键:原数据值},{$set:{新数据键:新数据值}},{multi:true})更新全部,multi 必须是在$存在的时候才会生效
db.集合名.remove({条件})删除文档,默认是删除所有符合条件的文档。若不添加条件则会删除所有文档。可添加{justOne:true}来删除一条符合符合条件的文档。给remove一个空字典会删除所有文档
db.集合名.count()计算文档个数
db.集合名.distinct(“age”)显示分组种类 , db.test.dinstinct(“age”,{“age”:{$gt:24}}) :增加条件下的种类
备份和恢复
mongodump -h dbhost -d dbname -o dbdirectory (回到bin目录下输入)数据备份 -h:服务器地址 -d:需要备份的数据库名称 -o:备份数据的存放位置
mongorestore -h dbhost -d dbname -dir dbdirectory (回到bin目录下输入)恢复数据,名字可以重新取一个,不一定要和原来一样
管道
db.集合名词.aggregate(管道:{表达式})
$group $group对应的字典中有几个键,输出结果也会有几个,取不同字段用 $字段名 表示将集合中的文档分组,可用于统计结果 如:db.test.aggregate({KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"age"}}) 当把_id = null时,就是统计整个文档
$match过滤数据,只输出符合条件的文档
$project修改输入文档的结构,如重命名,增加删除字段,创建计算结果等
$sort将输入的文档排序后输出
$limit限制聚合管道返回的文档数
$skip跳过指定数量的文档,并返回剩下的文档
$upwind将数组字段的类型进行拆分 ,即若键值对的值是一个列表的话,可以分成键和列表中的各元素一一对应的一堆键值对
$upwind添加属性保证null可以存在db.test.aggregate({KaTeX parse error: Expected 'EOF', got '}' at position 11: upwind:"键"}̲ 或 {upwind:{path:“键”,preserveNullAndEmptyArrays}})
管道中的表达式
$键名在管道的字典中表示该键
$sum计算求和 $ sum:1 如:db.test.aggregate($ group:{_id:"$ age",count:{$sum:1}}) ( $ 符号左右没有空格,因为网页显示问题加的)
$avg计算平均值
$max获取最小值
$min获取最大值
$push在结果文档中插入值到一个数组中
$first根据资源文档的排序获取第一个文档的数据
last获取最后一个文档的数据
高级查找
db.集合名.find()显示该集合内的所有数据
db.集合名.find({‘age’:18})增加条件,查找年龄为18岁的条目
db.集合名.find({‘age’:18},{‘sex’:‘f’})多个条件,用 , 连接 表示and
db.集合名.find({$or:[{条件1},{条件2}]})多个条件,先写$or,再在后面的列表中添加条件,条件之间用 ,隔开
比较运算符 db.集合名.find({‘age’:{$lt:18}}) ,查找年龄小于18岁的大于: gt ,小于:lt , 大于等于: gte ,小于等于:lte , 不等于: ne
db.集合名.find({‘age’:{$in:[1,2,3]}})$in 查找在后面的列表中的某个元素的项目
db.集合名.find({“键”:/正则表达式/} 或{“键”:{$regex:“正则”}})如 db.test.find({“name”:{$regex:"^abc"}}) 查找name以abc开头的文档
db.集合名.find().limit(2)查找前2个
db.集合名.find().skip(3)跳过前3个, db.集合名.find().skip(3).limit(2) :联用,跳过前3个查找2个 (先skip后limit更快,可用于翻页,若一页20条数据,limit(20)即可)
db.集合名.find({$where:function(){return this.age<=25}})在where后面写一个函数
db.find().sort({‘age’:1}) 从小到大排序按年龄排序 db.find().sort({‘age’:-1})就可以降序排列(从大到小)
db.find({},{“name”:1,_id:0})投影,不显示_id,显示name (用1或0表示显示或不显示)
db.find().count()计算个数
数据类型
object id文档id,保证每个文档的唯一性。_id 是一个16进制数,前4给是当前的时间戳,接下来3给是机器id,接下来2给是mongodb的服务器进程id,最后3个是简单增量
string字符串,必须是有限的utf-8
Boolean储存一个布尔值,true或false ,mongodb 的bool都是小写的
Integer整数可以时32位或64位
Double储存浮点值
Arrays数组或列表,多个值储存到一个键
Timestamp时间戳 ,表示1970-1-1到现在的总秒数
Date储存当前日期或时间的UNIX时间格式
-------------
for(i=0;i<10;i++)(db.集合名.insert({name:“test”+i,age:i}))再终端中批量添加10调数据 (还是用pymongo直接导入一整个字典列表方便一点)
db.索引名.ensureIndex({“属性1”:1,“属性2”:2},{“unique”:1})给某个属性(或多个属性)标上索引,1表示升序,-1表示降序,注意Index的I是大写。锁定unique属性之后如果这个字段出现一样的值就会报错(用于去重,不会插入重复的内容)
db.索引名.find({属性1:""}).explain(“excutionStats”)查看信息,包括运行时间,对比建立索引前后的查询速度发现变快了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值