C# MongDb如何查找包含无效数据的元素

C# MongDb如何查找包含无效数据的元素,c#,mongodb,mongodb-query,C#,Mongodb,Mongodb Query,我有一个非常大的mongo数据库集合 现在,有很多任务的夜间作业有一个任务要运行 代码以foreach在其上运行,如下所示: var sets = Collection.FindAll(); await sets.ForEachAsync(handler) [IgnoreNull] [DataMember(Order = 1390, Name = "lt")] public string[] DeepLinkToken { get; set; } 今天早上我得到: System.For

我有一个非常大的mongo数据库集合

现在,有很多任务的夜间作业有一个任务要运行

代码以foreach在其上运行,如下所示:

var sets = Collection.FindAll();
await sets.ForEachAsync(handler)
 [IgnoreNull]
 [DataMember(Order = 1390, Name = "lt")]
 public string[] DeepLinkToken { get; set; }
今天早上我得到:

System.FormatException:反序列化 类的连接属性 SR.BusPortal.DomainModel.Search.StoredConnectionSet:发生错误 反序列化类的DeepLinkToken属性时 SR.BusPortal.DomainModel.Search.StoredConnectionStep:无效 b字体:34

与错误相关的属性定义如下:

var sets = Collection.FindAll();
await sets.ForEachAsync(handler)
 [IgnoreNull]
 [DataMember(Order = 1390, Name = "lt")]
 public string[] DeepLinkToken { get; set; }
此数组中是否存在任何可能有问题的特殊字符串

现在,我如何找出哪个文档具有无效属性?它的价值是什么?有没有办法选择它?e、 g.与mongo chef或c#api合作

一种方法是将所有文件作为BsonDocuments读取,然后手动将它们反序列化为手动
BsonSerializer.Deserialize(doc)。但是有更好的办法吗

更新 我创建了一个小测试工具,但没有得到任何异常。当我认为以下代码应该在特定域上中断/抛出时,我是否犯了错误?还是更可能只是一个暂时的bug

source.FindAll(options).ForEachAsync((doc, pos) =>
        {
            try
            {
                var element = BsonSerializer.Deserialize<StoredConnectionSet>(doc);
            }
            catch(Exception err)
            {
                if(Debugger.IsAttached) // I run in debug with an attached VS debugger
                {
                    Debugger.Break();
                }

                Console.WriteLine(err);
                throw;
            }
        })
source.FindAll(选项).ForEachAsync((doc,pos)=>
{
尝试
{
var元素=BsonSerializer.Deserialize(doc);
}
捕获(异常错误)
{
if(Debugger.IsAttached)//我使用附加的VS调试器在调试中运行
{
Debugger.Break();
}
控制台写入线(错误);
投掷;
}
})

我发现它与数据无关。这与有时发生的一些连接问题有关

不确定为什么会出现此异常,但解决连接问题解决了此错误