作者:faihiwang | 来源:互联网 | 2014-05-28 16:53
1、db.copyDatabase(blog,blog2)//复制数据库2、db.dropDatabase()//删除数据库blog23、在多台服务器之间复制数据库db.copyDatabase(blog,blog,192.168.1.202)//从源服务器复制blog数据库。usenewsswitchedtodbne
1、 db.copyDatabase("blog", "blog2") // 复制数据库
2、 db.dropDatabase() // 删除数据库 blog2
3 、在多台服务器之间复制数据库 db.copyDatabase("blog", "blog",
"192.168.1.202") // 从源服务器复制 blog 数据库 。
> use news
switched to db news
> db.cloneDatabase("192.168.1.202") // 从源服务器克隆当前数据库(news)
4、 当我们使用 use 切换到某个数据库时,变量 db 表示当前数据库。还可以用 getSisterDB()
函数获取其他数据库的引用。
> blog = db.getSisterDB("blog")
blog
> blog.users.insert({name : "abc"})
> blog.users.find({name : "abc"})
5、 索引信息被保存在 system.indexes 中,且默认总是为 _id 创建索引。
ensureIndex / dropIndex / reIndex
使用 ensureIndex 创建索引,dropIndex() 删除索引,dropIndexes() 删除全部索引(不包括
_id 等系统索引)。
> db.users.ensureIndex({name:1})
> db.users.ensureIndex({age:1})
> db.system.indexes.find()
6. Unique Index
只需在 ensureIndex 命令中指定 unique 即可创建唯一索引。
> db.users.ensureIndex({name:1}, {unique: true })
> db.system.indexes.find()
7. totalIndexSize
MongoDB 会将索引数据载入内存,以提高查询速度。我们可以用 totalIndexSize 获取全部索引数据大小。
8、dbpath & port
默认数据存储路径是 /data/db,默认端口 27017,默认 HTTP 端口 28017。用 --dbpath 和
--port 改吧
9. daemon
如果想以 Daemon 方式运行,需要同时使用 --fork、--logpath 参数。
10、排序 db.users.find().sort({age:-1}).limit(10000)
11、 Replica Sets 11.
Replica Sets 使用 n 个 Mongod
节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案。通常使用 3 个
mongod 实例,或者 2 mongod + 1 arbiter 方案。
/home/qiyk/tool/
mongodb/bin/mongod -port 27017 -replSet myset -dbpath=/home/qiyk/tool/
mongodb/data/db -fork -rest -logpath=/home/qiyk/tool/mong
odb/data/log/all.log
/home/qiyk/tool/mongodb/bin/mongod -port 27027 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db2 -fork -rest -logpath=/home/qiyk/tool/mo
ngodb/data/log/all2.log
/home/qiyk/tool/mongodb/bin/mongod -port 27037 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db3 -fork -rest -logpath=/home/qiyk/tool/mo
ngodb/data/log/all3.log
然后:> cfg={_id:"myset",members:[
... ... {_id:0,host:"10.20.155.10:27017"},
... ... {_id:1,host:"10.20.155.10:27027"},
... ... {_id:2,host:"10.20.155.10:27037"}]};
> rs.initiate(cfg)
;
{
"info" : "Config now
saved locally. Should come online in about a minute.",
"ok" : 1
}
如此 Replica Sets 就算配置成功。
相关配置数据保存在 local 数据库中。
12. #只允许某ip访问
$ mongod --bind_ip 127.0.0.1
13、Mongo Database Profiler
也可以在客户端调用db.setProfilingLevel(级别)
命令来实时配置。可以通过db.getProfilingLevel()命令来获取当前的Profile级别。
> db.setProfilingLevel(2);
{"was" : 0 , "ok" : 1}
> db.getProfilingLevel()
|
上面斜体的级别可以取0,1,2 三个值,他们表示的意义如下:
0 ? 不开启
1 ? 记录慢命令 (默认为>100ms)
2 ? 记录所有命令