从终端创建MongoDB数据库(不带shell)



由于在工作中创建学习材料的具体案例,我正在寻找一种方法创建一个数据库和一个集合,但只使用终端,也就是说没有Mongo shell或Mongo Compass GUI。

这个想法是在使用mongoimport之前从终端创建db和collection,如:
# Create database `company-example` and collection `employees` from the terminal
# ...
# ...

# Import the data to the collection
mongoimport --db=company-example --collection=employees --file=employees.json --jsonArray

我认为我可以通过创建一个npm包,然后用Node从终端运行它来做到这一点,但我想知道是否有更简单的方法。

我假设出于某种原因,您希望在导入之前创建数据库和集合。

  1. 创建一个脚本,例如employees.js,内容:

db.createCollection("employees", {collation:{locale:"en", strength:2}});

  1. 从终端启动命令:

    mongo company-example employees.js

请注意mongo命令的第一个参数是DB名称,第二个是您的脚本。如果DB不存在,则自动创建。

你可以"来自的数据库和空集合是预定义的数据库和集合(用于创建具有空集合的新数据库)。这是基于另一个作者的帖子:克隆收集在mongoDB在相同的数据库。

首先,创建一个名为dummyDB的数据库和一个名为testColl的空集合。这用于创建/克隆一个只有一个空集合的数据库。

这个命令将从终端创建一个克隆:

mongodump --archive --db=dummyDB --collection=testColl | mongorestore --archive --nsFrom="dummyDB.*" --nsTo="examples.*"

克隆的数据库是examples,没有文档的集合是testColl

如果您要一次又一次地创建克隆,这个过程是有用的。

最新更新