设为首页 收藏本站
查看: 1452|回复: 0

[经验分享] Mongodb基础知识之使用Mongodb Shell

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-28 09:26:35 | 显示全部楼层 |阅读模式
在启动Shell时指定机器名(地址)和端口就可以连接到该机器的数据库实例。
mongo  somehost:27017/xxdb
通过--nodb参数启动Shell,不连接任何mongod实例。
启动之后,在需要时运行new Mongo(hostname)命令就可以连接到想要的mongod了。
>conn = new Mongo("localhost:27017")
connection to localhost:27017
>db = conn.getDB("test")
test
Shell内置了帮助文档,可以使用help命令查看。
db.help()查看数据库级别的帮助,db.foo.help()查看集合级别的帮助。
如果想知道一个函数是做什么用的,可以直接在Shell输入函数名(后不要跟小括号),这样就可以看到相应函数的JavaScript实现代码。
使用Shell执行脚本:
·命令行中传递脚本
wKiom1TwDgOgAWwvAAEU89YHE50473.jpg

如果希望使用指定的主机端口/数据库运行脚本,需要先指定。
mongo --quiet  serverhost:27017/test  script1.js script2.js ……..
·使用load()函数,从交互式Shell中运行脚本
wKiom1TwDimxu-P8AABTT9cIG7o640.jpg

在脚本中可以访问db变量,以及其它全局变量。然而,Shell辅助函数(如use db和show collections)不可以在文件中使用。这些辅助函数都有对应的JavaScript函数,如下:
辅助函数等价函数
use foodb.getSisterDB("foo")
show dbsdb.getMongo().getDBs()
show collections db.getCollectionNames()
默认情况下,Shell会在运行Shell时所处的目录下查找脚本(可以使用run("pwd")命令查看)。如果脚本不在当前目录,可以为Shell指定一个相对或绝对路径。
创建.mongorc.js文件:
如果某些脚本会被频繁的加载,可以将它们添加到mongorc.js文件中。这个脚本会在启动Shell时自动运行。
启动Shell时指定--norc参数,可以禁止加载 .mongorc.js。
例如:启动Shell时显示欢迎语。可以在宿主目录下.mongorc.js文件中添加如下内容。
//Mongodb regards
var compliment = ["attractive","intelligent","like,Batman"];
/**Math.random():获取0~1随机数
* math.floor(x)返回小于参数x的最大整数,即对浮点数向下取整.
* 使用Math.floor(Math.random())去获取你想要的一个范围内的整数。如下结果是:0<=x<3
*/
var index = Math.floor(Math.random()*3);
print("Hello, you're looking particularly "+compliment[index]+" today!");
为了实用,可以使用这个脚本创建一些自己需要的全局变量,或者是为太长的名字创建一个简短的别名,也可以重写内置函数。.mongorc.js最常见的用途之一是移除那些比较“危险”的Shell辅助函数。
//
var no = function() {
    print("Not on my watch.");
};
//禁止删除数据库
db.dropDatabase = DB.prototype.dropDatabase = no;
//禁止删除集合
DBCollection.prototype.drop = no;
//禁止删除索引
DBCollection.prototype.dropIndex = no;
改变数据库函数时,要确保同时对db变量和DB原型进行改变。如果只改变了其中一个,那么db变量可能没有改变,或者这些改变在新使用的所有数据库(use anotherDB)中都不会生效。
定制Shell提示:
将prompt变量设为一个字符串或者函数,就可以重写默认的Shell提示。
如:Shell提示中输出当前时间
//Output use time
prompt = function() {
    return (new Date())+">";
};
编辑符合变量:
Shell的多行支持是非常有限的:不可以编辑之前的行。为了方便地调用编辑器,可以在Shell中设置EDITOR变量(也可以在.mongorc.js环境变量中设置)>EDITOR="/usr/bin/vim"
之后如果想编辑一个变量,可以使用edit变量名这个命令,如:
>post = {"aa":1}
>edit post
修改后保存退出,变量就会重新解析加载到Shell。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-42809-1-1.html 上篇帖子: Mongodb基础知识 下篇帖子: mongoDB Connection String URI Format 基础知识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表