Mongodb常用脚本 mongo增删改查脚本
一、 Mongodb查询某个字段是否存在
如查询所有存在updatetime字段的数据的总条数,因为mongodb和关系型数据库mysql, sqlserver不同,mongodb为文档型数据库,每条数据可以保存不同的字段名,比如 一个updatetime字段,可以只在某个集合或某些集合中存在,而在mysql中是在一个表中,统一指定固定的字段名。
db.getCollection('zhiwu').find({'updatetime':{'$exists':true}}).count()二、Mongodb模糊查询,相当于mysql中的 like
使用regex
task_cache_collection.find({"task_type":{'$regex' : ".atmosphere."}})三、mongodb循环查询修改数据
var tablename='表名';
var arr= db.getCollection(tablename).find().sort({'_id':1});
var num=0;
var show=function(value,index,arr){
num++;
db.getCollection(tablename).update({"_id":value._id},{"$set":{"orderid":Number(num)}},false,true);
}
arr.forEach(show);四、mongodb聚合查询,分组查询 相当于Mysql中的group by
//以标题分组,查询重复标题的个数,其中 _id 是固定不可改变的,$title 即是标题字段
db.content.aggregate({'$group':{'_id':"$title",'个数':{'$sum':1}}})
//上面的查询结果 ,按 个数降序排列 -1 降序排列, 1 升序排列
db.content.aggregate({'$group':{'_id':"$title",'total':{'$sum':1}}},{"$sort":{"total":-1}})如图:

五、Mongodb创建索引及唯一索引
//对content表的title字段创建索引,后台运行
db.content.createIndex({"title":1}, {background: true});
//查询content表中的索引
db.content.getIndexes()
Mongodb创建唯一索引, Mongo创建唯一索引, Mongodb唯一索引, Mongo唯一索引, mongo索引:
以下给tag表中的orderid创建唯一索引
db.tags.ensureIndex({orderid:1},{unique:true}); //unique:true, 唯一索引
六、Mongodb删除字段
db.getCollection('test1').update({},{$unset:{列名:""}},false, true)
注:删除用unset,并且带参数false,true.删除嵌套的json格式直接列名写父层的或者一层一层调用到底层的小列名。注:删除用unset,并且带参数false,true.删除嵌套的json格式直接列名写父层的或者一层一层调用到底层的小列名
七、mongodb删除行数据, deleteMany删除多行,deleteOne 删除一行
db.collection.deleteMany()
删除所有与指定过滤器匹配的文档。
# 删除所有传入{}文档,
即db.collection.deleteMany({})

















