C#学习教程:如何从C#调用存储在MongoDb中的JavaScript问题是移动存储过程,我阅读了MongoDb存储的javascript,我想在.Net中做一些测试。我已经安装了MongoDb驱动程序2.4.0并在命名的test_function上创建了这个函数:function(x){returnx;这是我用来尝试调用该函数的代码:MongoClientoMongoClient=newMongoClient(Properties.Settings.Default.MongoCN);IMongoDatabaseoMongoDatabase=oMongoClient.GetDatabase("test_db");varresult=oMongoDatabase.RunCommand("test_function(3)");我收到此错误:MongoDB.Bson.dll'System.FormatException'类型异常中发生未处理的错误。附加信息:JSON阅读器需要一个值,但找到了“test_function”。我想你可以这样运行一个存储的脚本:varcmd=newJsonCommand("{eval:"test_function(2)"}");varresult=db.RunCommand(cmd);但结果在BsonDocument中要获得正确的结果,您可以使用此方法:varintResult=result["retval"].ToInt32();完全相同的问题在这里:来自C#的MongoDBdb.runCommand()我的第一个答案是在那里,但我认为最好在这里做。我认为您可以使用此代码调用:vardoc=newBsonDocument(newDictionary{{"test_function","3"}});varcommand=newBsonDocumentCommand(doc);varresult=db.RunCommand(命令);但是,正如您在此处所见,确实不建议以这种方式使用存储过程。我在这里找到了另一个解决方案https://gist.github.com/jamesikanos/b5897b1693b5c3dd1f87使用此代码片段,您可以通过以下方式调用该函数:JavaScript共享的所有内容,如果它对您有用并且您需要了解更多有关C#学习教程,希望大家多多关注—db.EvalAsync("test_function(2)").Result本文收集自网络,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
