我试图在MongoDB的C#驱动程序中使用Variety,MongoDB(2.6)的自定义工具/脚本。
我能够通过命令行成功运行它,但我不确定如何在C#驱动程序中运行它。
bin \ mongo db --eval" var collection =' coll',limit = 20" BIN \ variety.js
当javascript位于bin\
旁边的mongo.exe
时,我运行了上面的命令。在the manual之后,我继续将文件放在\data\db\scripts
中。但是我也读到了system.js
文件。
以\data\db\scripts
正确的方式放置它?或者我必须在system.js
This example显示了如何使用两个参数执行方法。但是,Variety工具使用某种上下文变量,我需要提供它才能执行(例如collection
和limit
)。在命令行中,它们以字符串形式提供,在脚本文件的名称之前进行评估。
命令行执行的等价物是什么?我无法获得result2
变量。如何传递整个脚本文件而不是函数名称?
MongoClient client = new MongoClient("mongodb://0.0.0.0/db");
MongoServer server = client.GetServer();
MongoDatabase db = server.GetDatabase("db");
BsonValue result1 = db.Eval("var collection = 'coll', limit = 20");
BsonValue result2 = db.Eval(result1.AsBsonJavaScript.Code, "variety.js");