我正在使用Mongo 3.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);
该代码在使用此错误消息调用Deserialize时失败:[附加信息:JSON reader期望一个值,但发现'db'。]这非常有意义,因为该脚本不是有效的JSON。
所以我在将脚本解析为可以执行的内容时遇到了麻烦。
在花费太多时间之前,我希望有人可以告诉我这是否可行。