-2

我正在使用官方 Mongodb C# 驱动程序。它允许我们构建一个嵌套的文档结构。现在,查询这些文档是一项繁琐的任务,因为它需要完全限定的点符号来准确引用相关文档。为此,我想检索所有父文档键,以便我可以选择其中一个并附加到字符串并传递给 .Query 。我能够递归地获取所有外部键,但我不知道如何获取比输入键低一级的外部键的名称。我用来获取所有密钥的代码如下:

void Print(BsonDocument document)
        {

            foreach (var element in document)
            {
                bool a = element.Value.IsBsonDocument;
                if (element.Value.IsBsonDocument)
                {
                    Console.WriteLine(element.Name);
                    Print(element.Value.AsBsonDocument);
                    Console.WriteLine("\n");
                }

            }

该文档是我通过 FindOneById(Id) 方法获得的主要文档

4

1 回答 1

1

为了确保我理解,您的问题是如何找出下一级子对象的键名?

在内部 if 语句中,调用 element.Value.AsBsonDocument 应该会返回一个 BSON 文档。然后,您应该能够以与迭代外部文档的字段相同的方式迭代该文档中的字段。您生成的代码可能类似于:

void Print(BsonDocument document)
{
    foreach (var element in document)
    {
        if (element.Value.IsBsonDocument)
        {
            BsonDocument subdoc = element.Value.AsBsonDocument;
            foreach (var subelement in subdoc)
            {
                // Code to print the subdocument here
            }
        }

    }
}
于 2012-05-09T18:02:24.363 回答