MongoDB 数据基本命令

接上篇MongoDB 的安装

今天研究一下Mongodb的数据库命令

启动
cd /Users/mc2/mongo
bin/mongod -dbpath /Users/mc2/mongo/db -logpath /Users/mc2/mongo/log.log &

进入命令
bin/mondo

如果登陆远程mongo,采用如下命令

bin/mongo -u admin -p 123456 127.0.0.1:27017/yuexiaosheng

显示如下
localhost:mongo mc2$ bin/mongo
MongoDB shell version: 2.0.2
connecting to: test
>
表示进去了。

基本命令
1.show dbs 查看数据库列表

> show dbs
comedy 0.0625GB
local (empty)
上次创建的comedy数据自动出来了。后面的是数据库文件大小

2.use 切换数据
use comedy
> use comedy
switched to db comedy

3.show collections 查看一个当时数据库下集合,类似MYSQL中的表
> show collections
cartoons
system.indexes

上篇例子中的
$collection = $db->cartoons;
相当于创建一个集合

4.db.serverStatus() 查看当前服务器状态
> db.serverStatus()
{
“host” : “localhost”,
“version” : “2.0.2”,
“process” : “mongod”,
“uptime” : 639,
“uptimeEstimate” : 632,
“localTime” : ISODate(“2012-08-19T04:09:59.736Z”),
“globalLock” : {
“totalTime” : 639253614,
“lockTime” : 353990,
“ratio” : 0.0005537551798651232,
“currentQueue” : {
“total” : 0,
“readers” : 0,
“writers” : 0
},
“activeClients” : {
“total” : 0,
“readers” : 0,
“writers” : 0
}
},
“mem” : {
“bits” : 32,
“resident” : 28,
“virtual” : 653,
“supported” : true,
“mapped” : 32
},
“connections” : {
“current” : 1,
“available” : 203
},
“extra_info” : {
“note” : “fields vary by platform”
},
“indexCounters” : {
“btree” : {
“accesses” : 0,
“hits” : 0,
“misses” : 0,
“resets” : 0,
“missRatio” : 0
}
},
“backgroundFlushing” : {
“flushes” : 10,
“total_ms” : 62,
“average_ms” : 6.2,
“last_ms” : 6,
“last_finished” : ISODate(“2012-08-19T04:09:20.470Z”)
},
“cursors” : {
“totalOpen” : 0,
“clientCursors_size” : 0,
“timedOut” : 0
},
“network” : {
“bytesIn” : 1636,
“bytesOut” : 3240,
“numRequests” : 22
},
“opcounters” : {
“insert” : 0,
“query” : 3,
“update” : 0,
“delete” : 0,
“getmore” : 0,
“command” : 21
},
“asserts” : {
“regular” : 0,
“warning” : 0,
“msg” : 0,
“user” : 0,
“rollovers” : 0
},
“writeBacksQueued” : false,
“ok” : 1
}
服务器状态看不太懂

5.db.stats() 查看当前数据库统计信息
> db.stats()
{
“db” : “comedy”,
“collections” : 3,
“objects” : 6,
“avgObjSize” : 52,
“dataSize” : 312,
“storageSize” : 16384,
“numExtents” : 3,
“indexes” : 1,
“indexSize” : 8176,
“fileSize” : 50331648,
“nsSizeMB” : 16,
“ok” : 1
}
6.db.getCollectionNames() 查询指定数据库包含的集合名称列表
> db.getCollectionNames()
[ “cartoons”, “system.indexes” ]
这个命令和第三个差不多show collections
数据库基本操作篇

1.新建数据库
use yuexiaosheng
db.mycollection.save({‘title’:’jack is 2.0′,’online’:’false’})

切换数据库,然后存储数据即可创建一个数据

yuexiaosheng 表示数据库名字
mycollection 表示数据集合,可以理解为数据表
{‘title’:’jack is 2.0′,’online’:’false’} 为数据字段和数据内容

这种结构相对比较松散。操作容易。

2、删除数据库
直接使用db.dropDatabase()即可删除数据库。

3、单独创建一个集合
可以使用命令db.createCollection(name, { size : …, capped : …, max : … } )创建集合,示例如下所示:

db.createCollection(‘yourcollection’, {‘title’:’you name is tom’, ‘online’:’false’})

该方法和 db.mycollection.save 基本相等

4.删除集合
db.yourcollection.drop()

5.插入记录
db.mycollection.save({‘title’:’jack is 2.0′,’online’:’false’})
新建数据库的时候有这个命令了。

6.查询一条记录

db.mycollection.findOne({‘online’:’false’})

> db.mycollection.findOne({‘online’:’false’})
{
“_id” : ObjectId(“5031bb15e6d6c7a903fb631a”),
“title” : “jack is 2.0”,
“online” : “false”
}

7.查询多条记录find
db.mycollection.find({‘online’:’false’})
db.mycollection.find() 返回所有记录

8.删除记录
使用集合的remove()方法,参数指定为查询条件,示例如下所示:
db.mycollection.remove({‘online’:’false’})
db.mycollection.remove() 删除所有记录
会删除所有为flase的记录

9.查询集合总记录数量
db.mycollection.count()

10.根据条件查询得出的总量
db.mycollection.find({‘online’:’false’}).count()

11.查询数据库集合占用存储空间
db.mycollection.storageSize()

12.查询指定数据库集合分配的存储空间
db.mycollection.totalSize()

13.创建索引
db.mycollection.ensureIndex({‘title’:1})
ensureIndex方法参数中,数字1表示升序,-1表示降序
一次创建多个索引
db.mycollection.ensureIndex({‘title’:1,’online’:-1})
db.mycollection.ensureIndex({‘title’:1})
全部索引查看
db.system.indexes.find()

14.查询索引
getIndexes
db.mycollection.getIndexes()
[
{
“v” : 1,
“key” : {
“_id” : 1
},
“ns” : “comedy.mycollection”,
“name” : “_id_”
},
{
“v” : 1,
“key” : {
“title” : 1
},
“ns” : “comedy.mycollection”,
“name” : “title_1”
}
]

15.删除索引
db.mycoll.dropIndex(name)
db.mycoll.dropIndexes()
第一个通过指定索引名称,第二个删除指定集合的全部索引。

16.重建索引
db.mycollection.reIndex()


This entry was posted in JAVA, Linux, PHP, 高并发与大数据 and tagged . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/mongodb-basic/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.
2020.03.24 评论已经全局关闭,有事加QQ聊天