在C#.Net中调用MongoDB存储的Javascript函数

时间:2016-06-09 07:37:15

标签: javascript c# mongodb mongodb-query mongodb-.net-driver

我需要在C#代码中调用MongoDB存储的JavaScript函数。

我的存储JavaScript函数 GetUserInfo

function() {
    return db.getCollection('Profession').find({});
}

执行:

db.loadServerScripts();

GetUserInfo();

它返回带有以下文档的Collection(这里我只粘贴了2个文档,实际上我有超过10K文档)

{
    "_id" : ObjectId("575845a713d284da0ac2ee81"),
    "Profession_id" : "575841b313d284da0ac2ee7d",
    "Prof_Name" : "Chief Officer"
}

{
    "_id" : ObjectId("575845d213d284da0ac2ee82"),
    "Profession_id" : "575841b313d284da0ac2ee7d",
    "Prof_Name" : "Executive Officer"
}

在C#中:

IMongoClient _client;
IMongoDatabase _database;

_client = new MongoClient();
_database = _client.GetDatabase("SampleDB");

请帮助我如何在C#代码中调用MongoDB存储的JavaScript函数。

以下问题使用 Eval 。在最新的驱动程序中,我无法找到扩展函数_database.Eval

Calling a Stored Procedure in MongoDB via C#

请帮助我...

1 个答案:

答案 0 :(得分:1)

您可以使用RunCommand method执行eval命令。我们已将其从API本身中删除,因为我们不希望您使用它。请查看这些部分,了解您不应该使用eval,firstsecond的原因。

我强烈建议您重新考虑“存储过程”策略。虽然我赞赏你集中和干掉代码的努力,但MongoDB中的eval会破坏性能和并发性。