Mongodb 如何在连接后在mongo shell中运行javascript文件

Mongodb 如何在连接后在mongo shell中运行javascript文件,mongodb,Mongodb,我有一个javascript文件,希望在mongo shell中运行它们。我知道如何在连接期间从以下链接加载javascript文件:。 但我的案例是如何在连接建立后运行外部js文件 我的js文件如下所示: db.getSiblingDB("test") .enron_messages.find({ $or: [{ filename: "111." }, { "headers.From": "test@gmail.com" }] }) .sort({ "headers.To"

我有一个javascript文件,希望在mongo shell中运行它们。我知道如何在连接期间从以下链接加载javascript文件:。 但我的案例是如何在连接建立后运行外部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
该函数实际上执行javascript文件。您面临的问题是,当外部脚本在“脚本化”模式下执行时,find()将只返回游标,而不会像mongo shell在中运行时那样迭代游标

中的文档中详细介绍了此行为。在这里,您将看到需要如何迭代光标并打印结果的示例:

cursor = db.collection.find();
while ( cursor.hasNext() ) {
    printjson( cursor.next() );
}
该函数实际上执行javascript文件。您面临的问题是,当外部脚本在“脚本化”模式下执行时,find()将只返回游标,而不会像mongo shell在中运行时那样迭代游标

中的文档中详细介绍了此行为。在这里,您将看到需要如何迭代光标并打印结果的示例:

cursor = db.collection.find();
while ( cursor.hasNext() ) {
    printjson( cursor.next() );
}