文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

7.mongo命令行运行JavaScript脚本

2024-04-02 19:55

关注

7.mongo命令行运行JavaScript脚本


最新内容会在源站更新.转载请保留原文链接: http://dashidan.com/article/mongodb/index.html


你可以通过在命令行写JavaScript脚本来处理数据及管理mongodb.更多信息请查看如何使用mongo脚本中的[Running .js files via a mongo shell Instance on the Server]()部分.

本文介绍了如何通过mongo命令行中写JavaScript脚本来连接MongoDB.

① 打开新的连接

在mongo命令行或者JavaScript文件中, 你可以通过Mongo()构造函数来创建一个数据库实例.

new Mongo()new Mongo(<host>)new Mongo(<host:port>)

以下示例是以MongoDB在dashidan.com默认端口运行, 并且将全局数据库变量设置为myDatabase,可以通过getDB()方法获取一个新的连接实例:

conn = new Mongo();db = conn.getDB("myDatabase");

如果Mongodb连接实例设置了访问控制, 你可以通过使用db.auth()方法来认证.

另外, 你可以通过connect()方法链接MongoDB实例. 以下为连接到MongoDB绑定dashidan.com非默认端口27020的示例:

db = connect("dashidan.com:27020/myDatabase");

② 命令输入和通过mongo脚本操作的区别

当你写mongo脚本的时候, 你需要考虑以下几点:

命令行帮助JavaScript
show?dbs,?show?databasesdb.adminCommand('listDatabases')
use? db = db.getSiblingDB(' ')
show?collectionsdb.getCollectionNames()
show?usersdb.getUsers()
show?rolesdb.getRoles({showBuiltinRoles: true})
show?log? db.adminCommand({ 'getLog' : ' ' })
show?logsdb.adminCommand({ 'getLog' : '*' })
itcursor = db.collection.find() if ( cursor.hasNext() ){ cursor.next(); }
cursor = db.collection.find();while ( cursor.hasNext() ) {
   printjson( cursor.next() );}

③ 写脚本

在系统命令行中, 使用mongo来使用JavaScript.

1.--eval选项

使用--eval选项来传入JavaScript脚本:

mongo test --eval "printjson(db.getCollectionNames())"

这个命令连接运行在dashidan.com,绑定27017端口的mongo实例, 并将db.getCollectionNames()方法的输出返回.

2.执行JavaScript文件

你可以直指定定一个以.js为后缀的JavaScript文件, mongo可以直接执行.例如:

mongo dashidan.com:27017/test myjsfile.js

这个命令连接运行在dashidan.com,绑定27017端口的mongo实例, 并将myjsfile.js的运行结果返回.

另外, 你可以在JavaScript文件中通过Mongo()构造函数来执行mongodb连接参数.参考[Opening New Connections]() 查看更多信息.

在mongo命令行中你可以通过load()方法运行.js文件, 例如:

load("myjstest.js")

这个方法加载并执行myjstest.js文件.

load()方法接受相对路径和绝对路径,默认为相对路径. 使用绝对路径的例子:

load("scripts/myjstest.js")load("/data/db/scripts/myjstest.js")
`load()`方法中路径没有自动查找功能

如果当前路径和绝对路径都找不到文件, 则改脚本不会执行.

④ 参考文章

 官方文档



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯