Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文件中读取查询并执行它_C#_Mongodb - Fatal编程技术网

C# 从文件中读取查询并执行它

C# 从文件中读取查询并执行它,c#,mongodb,C#,Mongodb,我正在使用Mongo3.4.4和最新版本的C#驱动程序。 我希望能够从文件中读取查询,并对Mongo数据库执行查询。 我知道我可以使用驱动程序中的Linq位来实现这一点,但我们的客户已经使用Mongo shell编写(并测试)了大量查询,他们希望能够按原样使用这些查询 有些(大多数)查询非常直截了当: db.registers.find({ "Permissions" : "WEEE" }).sort({ "Name" : 1 }).skip(0).limit(20) db.restauran

我正在使用Mongo3.4.4和最新版本的C#驱动程序。 我希望能够从文件中读取查询,并对Mongo数据库执行查询。 我知道我可以使用驱动程序中的Linq位来实现这一点,但我们的客户已经使用Mongo shell编写(并测试)了大量查询,他们希望能够按原样使用这些查询

有些(大多数)查询非常直截了当:

db.registers.find({ "Permissions" : "WEEE" }).sort({ "Name" : 1 }).skip(0).limit(20)

db.restaurants.aggregate([{"$match": {"name": "Bob Smith"}}, {"$skip": 0}, {"$limit": 10}, {"$sort" :{"name" : 1}}]) 
我希望它能够解析这些查询并将它们传递给database.RunCommand,但我一直没有取得任何进展

var bsonDoc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>("<some query that was read from a file>");
database.RunCommand(command);
var bsonDoc=MongoDB.Bson.Serialization.BsonSerializer.Deserialize(“”);
database.RunCommand(command);
该代码在调用反序列化时失败,并显示以下错误消息:[其他信息:JSON reader需要一个值,但找到了“db”。]这非常合理,因为脚本不是有效的JSON

因此,我无法将脚本解析为可以执行的内容


在花费太多时间之前,我希望有人能告诉我这是否可行。

是否要从c代码本身执行这些命令?您还可以将这些查询放在.js文件中,并让它们从命令行使用mongo x.js执行。我希望它们从c#执行,这可能很有用。不确定它是否真的能回答你的问题,但至少看起来是一个很好的起点。今天早些时候我确实看过这个问题。使用最新版本的C#驱动程序时,该评估方法不可用。在一个新的mongo实例上调用Process.Start似乎有点笨拙,但这可能是我唯一的选择