在启动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执行脚本: ·命令行中传递脚本
如果希望使用指定的主机端口/数据库运行脚本,需要先指定。 mongo --quiet serverhost:27017/test script1.js script2.js …….. ·使用load()函数,从交互式Shell中运行脚本
在脚本中可以访问db变量,以及其它全局变量。然而,Shell辅助函数(如use db和show collections)不可以在文件中使用。这些辅助函数都有对应的JavaScript函数,如下: 辅助函数 | 等价函数 | use foo | db.getSisterDB("foo") | show dbs | db.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。
|