mongodb命令总结

原创
2017/12/07 20:56
阅读数 92

以下是前一段时间做项目涉及到mognodb的一些命令的总结(以后如果有会继续完善)

mongodb查询某条件下的数量

db.accountMongoEntity.find({libraryno:'A450000GXG'}).count();

删除某字段为某值的数据

db.accountMongoEntity.remove({libraryno:'A450000GXG'});

查询值为‘null’字符串的数据量:

db.accountMongoEntity.find({libraryno:'null'}).count();

 

查询某个字段值为空的数据量

db.accountMongoEntity.find({upperUid:{$in:[null]}}).count();

查询某个字段值不为空的数据量

db.accountMongoEntity.find({upperUid:{$ne:null}}).count();

 

 

mongodb查询索引

db.accountMongoEntity.getIndexes();

mongodb创建索引:

db.accountMongoEntity.ensureIndex({'upperUid':1});

 

用命令导入mongodb数据(重要)

./mongoimport --db idm --host 127.0.0.1:27017 --authenticationDatabase=idm -u bkmanager -p execute2017*go --file /usr/Netauth/accountMongoEntity.json

参考网站 :http://blog.csdn.net/zwyjg/article/details/52243136

详细步骤:

1.进入linux的mongodb的安装目录下的bin目录下(/usr/local/mongodb/bin);

2.执行上面的命令语句,其中:

--db 后面跟数据库名

--host 跟服务器地址ip和端口

--authenticationDatabase 后面跟要认证的数据库名

-u 表示认证的账号

-p 表示认证的密码

--file 表示文件导入(--out 表示导出)

最后面是要导入的json文件的详细路径(包含文件名)

 

分页查询

1.官方推荐

db.mongolist.aggregate([

{$group:{ _id:"$_id",count:{$sum:1}}},

{$match:{value:{$gte:2}}}

])

 

2.自己总结

按idno进行分组查询,并统计每个的数量(重要):

db.accountMongoEntity.aggregate([ { $group: {"_id": { "idno" : "$idno"},count:{$sum:1}}}, {$match:{count:{$gte:2}}} ],{ allowDiskUse: true });

期中allowDiskUse:true表示放开内存限制

 

查询mongodb的一个集合并做更新操作(直接可以遍历整个集合中的每一条记录,并对每一条进行修改操作,记录过时间,处理500万数据量,将近3小时):

var obj= db.accountMongoEntity.find({});

var count = 0;

while(obj.hasNext()){

    count++;

 var per = obj.next();

db.accountMongoEntity.update({_id:per._id},

     {$set:{upperUid:per.uid.toUpperCase()}}

    ,false,true)

}

printjson("总共用户数:"+count);

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部