【问题标题】:MongoDB remote shell script create databaseMongoDB远程shell脚本创建数据库
【发布时间】:2015-01-22 07:00:45
【问题描述】:

对于这个论坛的新手,对于 mongodb,我的目标是自动创建从计算机客户端上的 linux BATCH 到服务器的数据库。

conn = new mongo();    "returns OK"
db = conn.getDB("admin"); "returns OK"
db.runCommand( { use NewDatabase } ) "returns *NOK* , this  is not the good syntax  "

在 Shell Helper 中找不到方法,或者我在 mongodb 帮助中错过了它:http://docs.mongodb.org/manual/tutorial/write-scripts-for-the-mongo-shell/

有解决方案还是我必须使用 Py -Pymongo 或其他语言?

谢谢你,很抱歉第一次发帖我不是一个很好的帖子。

【问题讨论】:

  • 请格式化您的代码。
  • 您能否更具体地说明什么不起作用?你有什么错误吗?如果您尝试在命令行 javascript 中包含 use dbname,那将不起作用(它只是交互式语法)。有关提示,请参阅:Write Scripts for the mongo Shell,并特别注意交互模式和脚本模式之间的区别。您可能还对讨论如何 Model Tree Structures 的 MongoDB 手册示例感兴趣。
  • 对不起,我会更明确。事实上:如何创建一个最小的 javascript 文件
  • @nwk 非常感谢链接。一切都很好,除了创建一个新的数据库,找不到执行此操作的命令:db._adminCommand( {use a-new-db} )' 不工作,但在交互式 shell 中工作。
  • @nwk 非常感谢链接。一切都很好,除了创建一个新数据库,找不到执行此操作的命令:内联 'db._adminCommand( {use a-new-db} )',不工作但在交互式 shell 中工作。

标签: mongodb


【解决方案1】:

如果您想从传递给mongo shell 的命令行创建/使用数据库,您可以:

  • 在您的 JavaScript 文件中使用 scripted equivalentuse NewDatabase

    db = db.getSiblingDB('NewDatabase');

  • mongo shell 命令行上传递您的脚本应该执行的数据库名称:

    mongo NewDatabase foo.js

如果不指定数据库名称,testmongo shell 使用的默认名称。

【讨论】:

  • 测试后工作正常,必须插入一个文档才能提交数据库创建。非常感谢,我最近几天在 mongo doc 中没有看到这种行为。
  • @Zlorg 是的,在您插入文档或为该数据库中的集合创建索引之前,不会创建数据库文件。
猜你喜欢
  • 1970-01-01
  • 2011-04-23
  • 2013-07-09
  • 2021-05-07
  • 1970-01-01
  • 2011-02-15
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多