時間:2024-02-24 17:17作者:下載吧人氣:20
MongoDB的使用之前也分享過一篇,稍微高階點:見這里:《MongoDB使用小結》
1、shell登陸和顯示
假設在本機上有一個端口為17380的MongoDB服務,假設已經把mongo bin文件加入到系統PATH下。
登陸:mongo –port 17380
顯示DB:show dbs
進入某DB:use test_cswuyg
顯示集合:show tables
2、簡單查找
查找文檔:db.test_mac_id.find({‘a’: ‘b’})
刪除文檔:db.test_mac_id.remove({‘a’: ‘b’})
查找找到某一天的數據:
db.a.find({‘D’ : ISODate(‘2014-04-21T00:00:00Z’)}) 或者 db.a.find({‘D’ : ISODate(‘2014-04-21’)})
刪除某一天的數據:
db.region_mac_id_result.remove({“D” : ISODate(‘2014-04-17’)})
小于2014.6.5的數據:
db.xxx.find({E: {$lt :ISODate(‘2014-06-05’)}})
大于等于2014.6.1的數據:
db.xxx.find({E: {$gte: ISODate(“2014-05-29”)}}).count()
兩個條件:
db.xxx.find({E:{$gte: ISODate(“2014-05-29”), $lte: ISODate(“2014-06-04”)}}).count()
json中的嵌套對象查詢,采用“點”的方式:
mongos> db.wyg.find({“a.b”: {$exists: true}})
{ “_id” : “c”, “a” : { “b” : 10 } }
某個字段存在,且小于1000有多少:
db.stat.find({_: ISODate(“2014-06-17”), “123”: {$exists: 1, $lte: 1000}}, {“123”: 1}).count()
3、存在和遍歷統計
存在’i’: 1,且存在old_id字段:
mongos> var it = db.test.find({‘i’: 1, “old_id”: {$exists: 1}})
遍歷計數1:mongos> var count = 0;while(it.hasNext()){if (it.next()[“X”].length==32)++count}print(count)
遍歷計數2:mongos> var count = 0;while(it.hasNext()){var item = it.next(); if (item[‘X’].length==32 && item[‘_id’] != item[‘X’])++count;if(!item[‘X’])++count;}print(count)
4、插入和更新
> db.test.findOne({_id: ‘cswuyg’})
null
> db.test.insert({‘_id’: ‘cswuyg’, ‘super_admin’: true})
> db.test.findOne({‘_id’: ‘cswuyg’})
{
“_id” : “cswuyg”,
“super_admin” : true
}
db.test.update({‘_id’: ‘cswuyg’}, {$set: {‘super_admin’: true}})
5、repair 操作
對某個DB執行repair:進入要repair的db,執行db.repairDatabase()
對mongodb整個實例執行repair:numactl –interleave=all /mongod –repair –dbpath=/home/disk1/mongodata/shard/
6、mongodb任務操作
停止某個操作:
[xxx]$ mongo –port 17380
MongoDB shell version: 2.4.5
connecting to: 127.0.0.1:17380/test
mongos> db.currentOp()
{ “inprog” : [ …] }
mongos> db.killOp(“shard0001:163415563”)
網友評論