mongodb--总结

使用use 切换到某一个数据库,使用db.表名.命令名({参数}) 来执行相关的动作。此时的db指代的就是默认切换到的那个db
查找时返回的一般都是整个文档,需要获取到文档中的某一个字段,{字段名:1}
有些比较奇怪的写法find({},{},number1,number2),number1是limit,number2是skip,会在booster报错...
第一个默认应该是查询条件,第二个默认应该是查询的结果。
显示创建固定集合createCollection("文档名",{capped:true,size:20480,max:100}),指定最大多大,最多插入多少文档,保证插入顺序一致,保证修改后顺序不会发生变化。如果要获取前n个值,使用limit
如果获取后10个值,可以使用$natural:-1,来使自然顺序反转
validate()函数可以检查集合的大小。
Count函数本质和skip()是冲突的,解决的关键在于count(true)
Distinct()函数可以直接获取某个属性,查询所有的可能的结果,但是返回的数量有限?
Group()函数,有三个参数,key,initial,reduce函数,分组数目不可以超过10000,否则会报错。
$In,$Nin,$or,$and
$slice:[] -----对数组操作,指定返回数组的元素个数,也可以作用于文档db.zzy_test.find({'name':'哲学'},{'pic.name':{$slice:2}})还是返回的全部信息,与-1不能连用?
$push: 插入元素到数组的末尾,这里需要结合update指令db.zzy_test.update({"name":"哲学"},{$push:{'pic.thumb':2}})
$mod:取余数的运算,指定余数为多少db.zzy.find({"age":{$mod:[2,0]}})
$size:指定数组的大小为多少,精确匹配的值。db.zzy_test.find({"pic.info":{$size:2}})
$exists:字段是否存在,但是不能使用索引,对全表进行扫描
Javascript代码,
Find(“this.age < 3”)
var f
f = function() { return this.age < 3 }
db.zzy.find(f)
$push:针对数组,往数组里面加内容,但是每次只能加一个,[]中括号里面的内容,会被当成一个子数组存放进去。因此需要注意的是,如果想push多个元素的话,需要再[]前面加上$each,$slice可以作为参数,限制数组中的元素个数,需要与$each连用
$addToSet:添加的数组不能重复 $push:添加的数组可以重复
//db.zzy_test.update({'name':'哲学'},{$addToSet:{'pic.thumb':["woca2"]}})
$unset db.zzy_test.update({'name':'哲学'},{$unset:{'pic.thumb':'woyun2'}})删除的是对应的key值,无论匹配是否成功,删除的都是thumb这个数组。。。。。。。。。。。
$inc  只能对数字进行加减操作 db.zzy_test.update({'name':'哲学'},{$inc:{'loadstate':4}})
$pop 命令不会删除数组,只会删除数组的元素,这点与unset还是不一样的。而且unset会删除掉匹配的所有的内容
db.zzy.update({name:"user_1"},{$pop:{"names":1}})可以指定弹出的是第一个还是最后一个
db.zzy.update({name:"user_1"},{$push:{'names':{$each:['zhaoliu','wangwu']}}})
db.zzy.update({name:"user_1"},{$pullAll:{'names':['zhaoliu','wangwu']}})
$pull本身可以去掉重复的数组元素,但是不可以使用[]来去掉多个元素。
$pullAll可以去掉多个元素
db.$cmd.findOne({getlasterror:1})查看上一次的错误信息
db.zzy.remove({"name":"user_1"})删除某条文档
db.zzy.renameCollection(“newname”)改名
Db.zzy.remove({})删除所有文档
Db.zzy.drop()删除集合
db.dropDatabase()删除数据库,注意当前使用的是哪个数据库


db.zzy.ensureIndex({"age":1})
db.zzy.find().min({age:1}).max({age:3})
Min max的使用,必须有索引,否则会报错


mapReduce函数。三部分组成,map,Reduce, finalize--用来处理reduce返回的结果
mapReduce----灵活 聚合函数----高效


Mongodump:备份  -d databasename -c collectionname
默认备份目录的结构为 ./dump/databasename/collectionname.bson
.bson文件是一个副本  .json文件是索引和定义
Mongorestore:恢复   --drop删除已存在的数据并恢复,不加此命令将会出现追加的效果(注意备份的目录和回复切换到的目录)
Mongoimport 可以加载的文件格式有CSV TSV 对于前两种,可以指定第一行作为名称列表。JSON 
Mongoimport -d -c --type csv --headerline < xx.csv   其中指定了种类 和 名称列表
Mongoexport 
Mongoexport -d -c -q{} -f -id,Title,Message,Author --csv > blogpost.csv  其中-q是查询条件,-f是字段
Mongod:需要首先启动mongodb的服务
Mongo:启动mongodb数据库


关于--auth指令,开启用户认证
切换到某个数据库,使用
db.createUser({user:"admin",pwd:"pass",roles:["readWrite","dbAdmin"]})
关闭mongod,重新开启mongod --auth
db.removeUser(“admin”)
登陆数据库后,切换到某个数据库后,使用db.auth(“user”,”pass”)即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值