我是 mongodb 的新手。
我们可以通过在关系数据库中的脚本
.sql
文件中指定来执行查询列表,并可以通过运行命令源c:\test.sql
来运行它。
举个例子
CREATE DATABASE `sandbox`;
USE `sandbox`;
CREATE TABLE pet (
name VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE
);
SHOW TABLES;
然后就可以执行为
$ mysql -u root -p admin
mysql > source test.sql;
mongodb
命令?mongodb
脚本?您可以使用 shell 脚本来完成。您可以使用以下命令来执行命令。
./mongo server:27017/dbname --quiet my_commands.js
有关详细信息,请查看 Mongo 文档中的 编写 shell 文档。
不确定答案是否太旧,或者有不同的方法可以做到这一点。 理论上来说,答案指定了一个“.js”文件,但讲述了“可以使用 shell 脚本来完成”。
无论如何,我想现在可能有更好的文档,但这里有另一种方法
我认为问题实际上是“应该使用哪种文件类型/扩展名来创建 mongo 脚本文件”
使用Javascript(不需要任何类型的库,只需 mongosh)
示例
db = connect( 'mongodb://localhost/sandbox' );
console.log(db);
console.log(Object.keys(db));
在
mongosh
shell 中使用 load
命令以及脚本的绝对或相对路径。
假设我们使用的是linux,请执行以下操作
mkdir mongo_sandbox
cd mongo_sandbox
touch mongo_script.js
现在让我们创建一个 mongo Javascript 脚本,你知道使用 vim、VSCode、笔和纸.. 等等
db = connect( 'mongodb://localhost/myDatabase' );
db.movies.insertMany( [
{
title: 'Titanic',
year: 1997,
genres: [ 'Drama', 'Romance' ]
},
{
title: 'Spirited Away',
year: 2001,
genres: [ 'Animation', 'Adventure', 'Family' ]
},
{
title: 'Casablanca',
genres: [ 'Drama', 'Romance', 'War' ]
}
] )
let movies = db.movies.find();
console.log(movies);
凉了,吃午饭了
mongosh
mongosh sandbox
# ...bla bla bla
sandbox>
运行脚本
load( "./mongo_script.js" )
哪个输出
sandbox> load( "./mongo_script.js" )
[
{
_id: ObjectId("64e8560e2932f758ce7d11a3"),
title: 'Titanic',
year: 1997,
genres: [ 'Drama', 'Romance' ]
},
{
_id: ObjectId("64e8560e2932f758ce7d11a4"),
title: 'Spirited Away',
year: 2001,
genres: [ 'Animation', 'Adventure', 'Family' ]
},
{
_id: ObjectId("64e8560e2932f758ce7d11a5"),
title: 'Casablanca',
genres: [ 'Drama', 'Romance', 'War' ]
}
]
true