首页 > 解决方案 > 如何使用 mongodb 驱动程序从 c# 运行 mongodb shell 查询

问题描述

我想在 C# 的 mongo 查询下运行。目前我正在使用 mongodb C# driver 2.7

db.changelog.find({}).forEach(function(doc){
//make javascript object dynimacally 
var newDoc = {
    "key": "value",
    "doc": doc
}
db.changelog_log.insertOne(newDoc); })

这已成功运行到 mongo shell,现在我想从 c# 应用程序执行该脚本并动态修改对象值。我希望它能够解析这些查询并将它们传递给 database.RunCommand 但我无法取得任何进展。

var bsonDoc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>("query");

数据库.RunCommand(命令);

该代码在调用反序列化时失败,并显示以下错误消息:[附加信息:JSON 阅读器期待一个值,但找到了 'db'。] 这很有意义,因为脚本不是有效的 JSON。

在 mongo 3.0 之后,评估功能已被贬值。

所以我无法将脚本解析成可以执行的东西。

标签: javascriptc#mongodbmongodb-querymongodb-.net-driver

解决方案


VehicleModel 是我用于插入和检索的模型,

所以它会替换为您的模型

        var collection = database.GetCollection<VehicleModel>("VehicleModel");

        var Data = await collection.Find(Builders<VehicleModel>.Filter.Empty).ToListAsync();


        foreach(VehicleModel vm in Data)
        {
            var newDoc =
            {
            "key": "value",
            "doc": vm
            collection.InsertOneAsync(value);
            }
        }

也许你正在寻找这个


推荐阅读