javascript - 如何使用 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 之后,评估功能已被贬值。
所以我无法将脚本解析成可以执行的东西。
解决方案
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);
}
}
推荐阅读
- javascript - 如何从 /dist/app.js 引用我的 package.json
- sql-server - 如何在 Python 中将 Web 表单连接到 SQL Server?
- react-native-android - react-native-fbsdk 在 ios 端工作但在 android 端不工作 我已经完全设置了 facebook 应用程序
- r - 在 R 的 grep 函数中使用字符
- python - 如何在 Pyspark 中迭代数组(字符串)以检查 Null/Blank 值
- terraform - azurerm_function_app 上的 Terraform use_msi
- flutter - 设置状态后flutter_webview_plugin监听器(onHttpError)不起作用
- python - 如何在 pre_ hooks 中修改 python eve 请求
- logging - 根记录器级别和控制台处理程序级别
- video - 如何在 UWP WebView 中配置视频/音频自动播放策略?