我有一个javascript文件,想在mongo shell中运行它们。我知道如何在连接期间从此链接加载javascript文件:How to execute mongo commands through shell scripts?。 但我的情况是如何在已建立连接后运行外部js文件。
我的js文件如下所示:
db.getSiblingDB("test")
.enron_messages.find({
$or: [{ filename: "111." }, { "headers.From": "test@gmail.com" }]
})
.sort({ "headers.To": 1 })
.limit(10);
在我的mongo shell中,我使用load('test.js')
加载该文件,但它返回true(参见下面的输出)。如何执行此文件?
> load('test.js')
true
答案 0 :(得分:2)
load()函数确实执行了javascript文件。您面临的问题是,当外部脚本以“脚本化”模式执行时,find()将仅返回游标,而不是像在Interactive mode中运行时mongo shell那样迭代它。
Write Scripts for the Mongo shell中的文档详细介绍了此行为。在那里,您将看到一个示例,说明如何迭代光标并打印结果:
cursor = db.collection.find();
while ( cursor.hasNext() ) {
printjson( cursor.next() );
}