c# - 将c#空格分隔字符串转换为MongoDB BsonDocument
问题描述
我成功地将 BSONdocument 上传到我的云 MongoDB 数据库,例如:
var temp = new BsonDocument
{
{"timestamp", now},
{"room1",20},
{"room2",24},
{"room3",14}
};
然而,这只是一个测试,我真正的应用程序正在获取一个空格分隔的字符串,我仍然需要将其转换为这样的 BsonDocument。我怎样才能做到这一点?要转换的字符串如下所示:
string data = "pm 49.8 42.4 2.2 52.1 51.6 50.8 10.3 120.0 120.0 20.0 20.0 120.0 0.0 0.0 20.0 20.0 0 0 0 0 0.0 0 1 0.0 53.7 0.0 0.0 80.0 46.4 27.7 20.0 22.5 57.0 51.0 27.0 26.0 19.5 -20.0 -20.0 20.0 20.0 -20.0 0.0 0.0 20.0 20.0 0 28.8 48.2 57 0.0 0.0 0.0 0.0 0.0 0.0 0.0 121.0 61.0 10.4 0.0 0.0 0.0 0.00 0.00 0.00 0.00 -20.0 0.0 20.0 20.0 -20.0 1 1 1 1 1 1 1 20.0 20.0 20.0 20.0 22.5 20.0 20.0 -20.0 1 15.9 0.0 0 0 2 -20 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 6 0 0 0 0 0 0 0 0 0 0 0 1 51 51 0000 0003 0000 0003 2000 0000 0000 0000"
BsonDocument 的左侧(room1, room2,... 在上面的示例中)项目可能会变成例如 ID0, ID1, ID2, ... 谢谢!
我要创建的对象的架构可能如下所示:
var whatineed= new BsonDocument
{
{"timestamp", now},
{"id0",49.8},
{"id1",42.4},
{"id2",2.2}
...and so on
};
解决方案
谢谢你的建议。我尝试了类似的东西,因为我的 Linq 知识太少,但它有效:-)
Console.WriteLine("Trying to send now...");
timestamp = DateTime.Now;
Console.WriteLine(timestamp);
string data = "{'timestamp':'" + timestamp + "'";
string[] split = read.Split(' ');
if (split.Length > 137)
{
for (int i = 0; i < (split.Length-2); i++)
{
data += ", 'id" + i.ToString() + "':'" + split[i+1] + "'";
}
data += "}";
var document = new BsonDocument();
document.AddRange(BsonDocument.Parse(data));
send(document);
}
推荐阅读
- iframe - Fuel cms 简单模块 CSRF 更新问题
- apache-spark - 如果在火花中传递一个条件以从 csv 文件中查找值
- sql - SQL Server:迭代调用过程
- spring-boot - 如何动态设置okta配置?
- apache-spark - Spark 问题 - 无法使用 Kafka Streaming 处理数据
- r - 如何在 PRROC 的 ROC 曲线图上添加对角线?
- python - Flask React Fullstack 应用程序路由问题
- database - 当 Relay 游标分页总是获取整个数据集时,它如何处理大数据集?
- excel - 使用 ID 进行多条件搜索
- r - 在 R 函数文档中包含库调用