La misma pregunta estaba aquí:MongoDB db.runCommand() de C#
Mi primera respuesta fue allí, pero creo que es mejor hacerlo aquí.
Creo que podrías llamar con este código:
var doc = new BsonDocument(new Dictionary<string, string> { { "test_function", "3" }});
var command = new BsonDocumentCommand<int>(doc);
var result = db.RunCommand(command );
Pero, como puede ver aquí , realmente no se recomienda usar procedimientos almacenados de esta manera.
He encontrado otra solución aquí:
https://gist.github.com/jamesikanos/b5897b1693b5c3dd1f87
Con este fragmento, podría llamar a su función de esta manera:
db.EvalAsync("test_function(2)").Result