我正在评估将 SQL Server 数据库移植到 MongoDb。
问题是移动存储过程,我读到了有关 MongoDb 存储 JavaScript 的内容,我想在 .Net 中进行一些测试。我已经安装了 MongoDb 驱动程序 2.4.0 并在 MongoDb 上创建了此函数,名为test_function
:
function (x)
{
return x;
}
这是我用来尝试调用该函数的代码:
MongoClient oMongoClient = new MongoClient(Properties.Settings.Default.MongoCN);
IMongoDatabase oMongoDatabase = oMongoClient.GetDatabase("test_db");
var result = oMongoDatabase.RunCommand<BsonDocument>("test_function(3)");
我收到此错误:
MongoDB.Bson.dll 中发生“System.FormatException”类型的未处理异常
附加信息:JSON 读取器需要一个值,但发现了“test_function”。
完全相同的问题在这里:来自 C# 的 MongoDB db.runCommand()
我的第一个答案在那里,但我认为最好在这里做。
我想你可以用这个代码来调用:
var doc = new BsonDocument(new Dictionary<string, string> { { "test_function", "3" }});
var command = new BsonDocumentCommand<int>(doc);
var result = db.RunCommand(command );
但是,正如你所看到的here,确实不建议这样使用存储过程。
我在这里找到了另一个解决方案:
https://gist.github.com/jamesikanos/b5897b1693b5c3dd1f87
使用此代码片段,您可以这样调用您的函数:
db.EvalAsync("test_function(2)").Result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)