一、mongodb可视化工具
使用NoSQL Manager for MongoDB客户端连接mongodb
二、数据库基本命令
启动MongoDB并连接shell客户端
执行:mongo 10.208.36.171:7659/admin -u mongo -p 70ee0de168d239de
1、show dbs
显示当前数据库服务器上的数据库
2、use pagedb
切换到指定数据库pagedb的上下文,可以在此上下文中管理pagedb数据库以及其中的集合等
3、show collections
显示数据库中所有的集合(collection)
4、db.serverStatus()
查看数据库服务器的状态。
5、查询指定数据库统计信息
use fragment
db.stats()
6、查询指定数据库包含的集合名称列表
db.getCollectionNames()
三、数据库DDL和DML
1、创建数据库
在MongoDB中,你可以直接通过use dbname来切换到这个数据库上下文下面,系统会自动延迟创建该数据库
2、删除数据库
直接使用db.dropDatabase()即可删除数据库。
3、创建集合
可以使用命令db.createCollection(name, { size : …, capped : …, max : … } )创建集合
4、删除集合
删除集合,可以执行db.mycoll.drop()。
5、插入更新记录
直接使用集合的save方法,如下所示:
db.storeCollection.save({‘version’:’3.5′, ‘segment’:’e3ol6′})
6、查询一条记录
使用findOne()函数,参数为查询条件,可选,系统会随机查询获取到满足条件的一条记录(如果存在查询结果数量大于等于1)示例如下所示:
db.storeCollection.findOne({'version':'3.5'}) { "_id" : ObjectId("4ef970f23c1fc4613425accc"), "version" : "3.5", "segment" : "e3ol6" }
7、查询多条记录
使用find()函数,参数指定查询条件,不指定条件则查询全部记录。
8、删除记录
使用集合的remove()方法,参数指定为查询条件,示例如下所示:
1 > db.storeCollection.remove({'version':'3.5'}) 2 > db.storeCollection.findOne() 3 null
9、创建索引
可以使用集合的ensureIndex(keypattern[,options])方法,示例如下所示:
1 > use pagedb 2 switched to db pagedb 3 > db.page.ensureIndex({'title':1, 'url':-1}) 4 > db.system.indexes.find() 5 { "name" : "_id_", "ns" : "pagedb.page", "key" : { "_id" : 1 }, "v" : 0 } 6 { "name" : "_id_", "ns" : "pagedb.system.users", "key" : { "_id" : 1 }, "v" : 0} 7 { "_id" : ObjectId("4ef977633c1fc4613425accd"), "ns" : "pagedb.page", "key" : {"title" : 1, "url" : -1 }, "name" : "title_1_url_-1", "v" : 0 }
上述,ensureIndex方法参数中,数字1表示升序,-1表示降序。
使用db.system.indexes.find()可以查询全部索引。
10、查询索引
我们为集合建立的索引,那么可以通过集合的getIndexes()方法实现查询,示例如下所示:
1 > db.page.getIndexes() 2 [ 3 { 4 "name" : "_id_", 5 "ns" : "pagedb.page", 6 "key" : { 7 "_id" : 1 8 }, 9 "v" : 0 10 }, 11 { 12 "_id" : ObjectId("4ef977633c1fc4613425accd"), 13 "ns" : "pagedb.page", 14 "key" : { 15 "title" : 1, 16 "url" : -1 17 }, 18 "name" : "title_1_url_-1", 19 "v" : 0 20 } 21 ]
当然,如果需要查询系统中全部的索引,可以使用db.system.indexes.find()函数。
11、删除索引
删除索引给出了两个方法:
1 db.mycoll.dropIndex(name) 2 db.mycoll.dropIndexes()
第一个通过指定索引名称,第二个删除指定集合的全部索引。
12、索引重建
可以通过集合的reIndex()方法进行索引的重建,示例如下所示:
use fragment
db.baseSe.count()
统计结果,如下所示:
1 > use fragment 2 switched to db fragment 3 > db.baseSe.count() 4 36749
上述统计了数据库fragment的baseSe集合中记录数。
14、查询并统计结果记录数
use fragment
db.baseSe.find().count()
find()可以提供查询参数,然后查询并统计结果,如下所示:
15、查询指定数据库的集合当前可用的存储空间
use fragment
> db.baseSe.storageSize()
142564096
16、查询指定数据库的集合分配的存储空间
> db.baseSe.totalSize()
144096000
上述查询结果中,包括为集合(数据及其索引存储)分配的存储空间。