如下是前一段時間作項目涉及到mognodb的一些命令的總結(之後若是有會繼續完善)linux
mongodb查詢某條件下的數量:mongodb
db.accountMongoEntity.find({libraryno:'A450000GXG'}).count();數據庫
刪除某字段爲某值的數據:json
db.accountMongoEntity.remove({libraryno:'A450000GXG'});服務器
查詢值爲‘null’字符串的數據量:網站
db.accountMongoEntity.find({libraryno:'null'}).count();ui
查詢某個字段值爲空的數據量:.net
db.accountMongoEntity.find({upperUid:{$in:[null]}}).count();blog
查詢某個字段值不爲空的數據量:索引
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);