【发布时间】:2022-08-16 01:58:04
【问题描述】:
我正在尝试获取 mongo 集合的所有级别中的所有键。 我有类似的东西:
{
\"_id\" : ObjectId(\"000000000000000000050904\"),
\"CRM\" : {
\"Teste\" : \"true\"
},
\"Endereco\" : {
\"Cidade\" : \"MARINGA\",
},
\"Vendas\" : [
{
\"idP\" : NumberInt(34),
\"txt\" : \"001\"
},{
\"idP\" : NumberInt(34),
\"txt\" : \"002\"
}
],
\"Tipos\" : [
{
\"idT\" : NumberInt(34),
\"idTipo\" : NumberInt(34)
},{
\"idT\" : NumberInt(34),
\"idTipo\" : NumberInt(34)
}
]
}
我试过了:
var database = _mongoDatabase.Client.GetDatabase(_project.DbConfig.Database);
var collection = database.GetCollection<dynamic>(collectionName);
var query = collection.AsQueryable<dynamic>();
IDictionary<string, string> myDict = (IDictionary<string, string>)query.FirstOrDefault();
List<string> collectionKeys = new List<string>(myDict.Keys.ToList());
我有:
[\"CRM\", \"Teste\", \"Endereco\", \"Cidade\", \"Vendas\", \"Tipos\"]
但我想要所有级别:
[\"CRM\", \"Teste\", \"Endereco\", \"Cidade\", \"Vendas\", \"IdP\", \"txt\", \"Tipos\", \"idT\", \"idTipo\"]
我的代码有什么问题?
-
据我所知,你没有做你期望做的事。
FirstOrDefault只是从您的收藏中获取第一条记录(即只应用limit(1)选项)。这里没有更多的逻辑。我仍然不太了解您想要做什么,但是正如我所见,您需要一个完整的文档,然后以某种方式对其进行分析。然后只需使用 BsonDocument 而不是动态的。然后分析这个文件,考虑结构为json。
标签: c# mongodb visual-studio linq studio3t