Mongodb的一些小技巧
来源:互联网 发布:淘宝卖家版官方下载 编辑:程序博客网 时间:2024/05/29 05:12
**
1.格式化find的结果
**
我们知道在Mongodb中findOne是有格式化输出的,而find没有,但是通过一些设置或者操作,我们也可以让find来实现格式化输出。
最简单的例子是在每次find后加上pretty()
db.blog.find({"_id" : ObjectId("55814703e6c873d825fdcc1a")}){ "_id" : ObjectId("55814703e6c873d825fdcc1a"), "content" : "...", "conments" : [ { "author" : "joe", "score" : 3, "comment" : "nice post" }, { "author" : "joe", "score" : 6, "comment" : "terrible post" } ] }>>>#加了pretty()之后就有格式化输出了> db.blog.find({"_id" : ObjectId("55814703e6c873d825fdcc1a")}).pretty(){ "_id" : ObjectId("55814703e6c873d825fdcc1a"), "content" : "...", "conments" : [ { "author" : "joe", "score" : 3, "comment" : "nice post" }, { "author" : "joe", "score" : 6, "comment" : "terrible post" } ]}
或者也在在Mongodb的shell中设置
DBQuery.prototype._prettyShell = true
那么在本shell中的所有find都是有格式的。
一劳永逸的方法就是把这条命令写入到~/.mongorc.js
**
2. .mongorc.js的一些设置
**
每次在启动Mongo的客户端的时候,都会加载~/.mongorc.js文件,所以有些常用的函数或者设置可以写到这个文件中。
除了上文说到的
DBQuery.prototype._prettyShell = true
设置外还有
EDITOR=”/usr/bin/vim”
或者
EDITOR=”/usr/bin/emacs”
因为Mongo的shell中不可以编辑之前的行,为了方便的调用编辑器,可以再shell中设置EDITOR变量。
举个栗子:
> var t = 123;> print(t)123> #如果在这里发现t变量有错,那么可以再次编辑> edit t > #输入edit t后,会打开vim并写显示t的值,编辑完成后,保存退出,变量自动保存> print(t)234
另外我在我的Mongo shell中增加了时间显示和数据库标示:
18:48:43 test>
test为当前连接的db名字
做法就是在文件中增加两个函数
prompt=function(){ var d = new Date(); var t = enrichTime(d.getHours()) + ":" + enrichTime(d.getMinutes()) + ":" + enrichTime(d.getSeconds()); if (typeof db == 'undefined') { return t + " (nodb)> "; } try { db.runCommand({getLastError:1}); } catch (e) { print(e) } return t + " " + db + "> ";};#避免出现18:2:2 这样的情况function enrichTime(i){ if (i<10) { i = "0" + i; } return i;}
如果不想加载这个文件,可以用–norc启动即可
./bin/mongo --norc
**
3.日志分割
**
参考网址
1.可以通过发送kill -SIGUSR1 来分割日志
立即生效
例如:
[19:01:30 fifi@CentOS6 log]$ ps xf PID TTY STAT TIME COMMAND 1345 ? S 0:03 sshd: fifi@pts/0,pts/1 1346 pts/0 Ss 0:00 \_ -bash 1816 pts/0 Sl+ 0:00 | \_ ./bin/mongo 1678 pts/1 Ss 0:00 \_ -bash 1851 pts/1 R+ 0:00 \_ ps xf 1505 ? Rl 1:15 ./bin/mongod -f mongodb.conf[19:01:31 fifi@CentOS6 log]$ lltotal 8-rw-rw-r--. 1 fifi fifi 822 Jun 17 19:01 mongo.log[19:01:36 fifi@CentOS6 log]$ pwd/home/fifi/Mongodb/log[19:01:38 fifi@CentOS6 log]$ kill -SIGUSR1 1505[19:01:42 fifi@CentOS6 log]$ ll total 12-rw-rw-r--. 1 fifi fifi 822 Jun 17 19:01 mongo.log-rw-rw-r--. 1 fifi fifi 822 Jun 17 19:01 mongo.log.2015-06-17T11-01-42
2.mongo logRotate 命令方法
use admin
db.runCommand( { logRotate : 1 } )
需要在mongos,mongod,config server运行。
效果一样。
3.友情提醒:
如果你手动mv或者rm掉mongodb的log,让程序找不到日志文件了,哪怕再恢复一个原来文件名的文件,日志不会再写入了。这时候只能重启mongod服务了。
但是,如果你用>mongodb.log命令来清空日志文件,就不会出现这样的问题。
**
4.其他技巧以后再补充
**
- Mongodb的一些小技巧
- HTML小技巧的一些小技巧
- HTML小技巧的一些小技巧
- HTML小技巧的一些小技巧
- HTML小技巧的一些小技巧
- JasperReports的一些小技巧
- 整人的一些小技巧!
- VC的一些小技巧
- 常用的一些小技巧
- freebsd的一些小技巧
- javascript的一些小技巧
- javascript的一些小技巧
- javascript的一些小技巧
- VB的一些小技巧。
- 最近的一些小技巧
- VC的一些小技巧
- 一些收集的小技巧
- php的一些小技巧
- 5.28
- 回调函数
- Struts 页面返回空白原因
- C++使用localtime函数需要注意的地方
- 如何劫持软件更新来安装 Rootkit 的后门访问
- Mongodb的一些小技巧
- 学习HashMap
- 2015-06-15
- 安卓开发简单管理应用程序使用的内存
- JAVA基础笔记——2
- 文档窗口标题修改
- Spring MVC中Session的正确用法之我见(转)
- 2015-06-16
- poj(3667)——hotel(线段树区间合并)