下面来总结一下mongodb新手入门的常用命令吧。要是您是mongodb新手,可以看下。
1,show dbs 查询mongodb里面的数据库列表
如果想查看当前连接在哪个数据库下面,可以直接输入db
想切换到test数据库下面 use test
2、db.getCollectionNames() 或者show collections 有哪些数据库表名字
效果差不多,然后可以对数据库表进行操作
3、查询条数 db.foo.count()
4、数据库的增删改
存储嵌套的对象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
查看存储的对象:
存储数组对象
db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
#根据query条件修改,如果不存在则插入,允许修改多条记录
db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
#删除yy=5的记录
db.foo.remove({'yy':5})
#删除所有的记录
db.foo.remove()
5、索引
增加索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
索引子对象
db.user_addr.ensureIndex({'Al.Em': 1})
查看索引信息
db.deliver_status.getIndexes()
db.deliver_status.getIndexKeys()
根据索引名删除索引
db.user_addr.dropIndex('Al.Em_1')
6、查询
# 查找所有
>db.foo.find()
#查找一条记录
>db.foo.findOne()
#根据条件检索10条记录
>db.foo.find({'msg':'Hello 1'}).limit(10)
#sort排序
> db.deliver_status.find({'From':'yushunzhi@sohu.com'}).sort({'Dt',-1})
>db.deliver_status.find().sort({'Ct':-1}).limit(1)
#count操作
> db.user_addr.count()
>#distinct操作
>db.foo.distinct('msg')
#操作
>db.foo.find({"timestamp": {"$gte" : 2}})
#子对象的查找
> db.foo.find({'address.city':'beijing'})
7、 管理
查看collection数据的大小
>db.deliver_status.dataSize()
#查看colleciont状态
>db.deliver_status.stats()
#查询所有索引的大小
> db.deliver_status.totalIndexSize()
8、备份与恢复
先介绍下命令语法:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!
--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
实际操作:
//cd 到bin目录下
cd c:\data\db\bin
//备份
mongodump -h 127.0.0.1:27017 -d test -o c:\data\dump
//恢复
mongorestore -h 127.0.0.1:27017 -d test --directoryerdb c:\data\dump\test