Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在VisualStudio中通过csharp驱动程序处理来自mongodb的不可预知的结构结果_C#_Visual Studio_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 在VisualStudio中通过csharp驱动程序处理来自mongodb的不可预知的结构结果

C# 在VisualStudio中通过csharp驱动程序处理来自mongodb的不可预知的结构结果,c#,visual-studio,mongodb,mongodb-.net-driver,C#,Visual Studio,Mongodb,Mongodb .net Driver,我无法从MongoDB检索结果,因为我声明了一个类,该类应该反映数据库中的数据结构,但它不准确。我无法确定数据的结构(结构松散) 我是否可以以某种方式重写此行为并返回数据库中的结果,而不是尝试(但失败)将结构放入我的类中?您可以使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,也可以定义一个表示所有文档的公共结构的类,然后使用该属性捕获所有不同的文档。您可以使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,也可以定义一个表示所有文档公共结构

我无法从MongoDB检索结果,因为我声明了一个类,该类应该反映数据库中的数据结构,但它不准确。我无法确定数据的结构(结构松散)


我是否可以以某种方式重写此行为并返回数据库中的结果,而不是尝试(但失败)将结构放入我的类中?

您可以使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,也可以定义一个表示所有文档的公共结构的类,然后使用该属性捕获所有不同的文档。

您可以使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,也可以定义一个表示所有文档公共结构的类,然后使用该属性捕获所有不同的文档。

您可以使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,也可以定义一个表示所有文档公共结构的类,然后使用属性捕获所有不同的文档。

您可以只使用MongoDB.Bson.BsonDocument,它本质上只是一个字典,或者您可以定义一个表示所有文档的公共结构的类,然后使用属性捕获所有不同的文档。

以下是我使用的,它将允许解析具有不同字段或缺少字段的文档。您可能需要进行大量的空检查,因为您不能期望所有字段都有内容,但这可能是不言而喻的

[BsonIgnoreExtraElements]
public class MongoClass
{
...
}

下面是我使用的,它将允许解析具有不同字段或缺少字段的文档。您可能需要进行大量的空检查,因为您不能期望所有字段都有内容,但这可能是不言而喻的

[BsonIgnoreExtraElements]
public class MongoClass
{
...
}

下面是我使用的,它将允许解析具有不同字段或缺少字段的文档。您可能需要进行大量的空检查,因为您不能期望所有字段都有内容,但这可能是不言而喻的

[BsonIgnoreExtraElements]
public class MongoClass
{
...
}

下面是我使用的,它将允许解析具有不同字段或缺少字段的文档。您可能需要进行大量的空检查,因为您不能期望所有字段都有内容,但这可能是不言而喻的

[BsonIgnoreExtraElements]
public class MongoClass
{
...
}


虽然这是一个有效的解决方案,但容易出错。正如Craig Wilson(驱动程序的开发人员之一)所建议的那样,使用
BsonExtraElements
更安全。谢谢I3arnon,但是你能再解释一下吗?我没有任何问题,但我也不是职业选手。谢谢
BsonIgnoreExtraElements
忽略额外的数据,因此您不知道何时隐藏问题
BsonExtraElements
会将额外的数据存储在类的特定属性中,这样您至少可以确定什么时候您的结构不适合。您可以记录这些信息,甚至可以使用实际的非类型化数据。好吧,我也红色了帮助文件,但是当您在开发类时,数据库已经使用测试数据运行,并且您正在向类添加额外的字段/属性,您将永远不会发现自己需要处理盲数据,您缺少来自Mongo的数据。由于缺少字段而导致不匹配,它总是会出错,BsonExtraElements也支持吗?我之所以使用它,是因为我知道有些文档缺少字段,因为它是该类早期版本中字段较少的数据。使用IgnoreExraElements,我的类解析所有数据,包括new和old.AFAIK,当类中存在文档中没有的额外属性时,驱动程序不会引发异常。虽然这是一个有效的解决方案,但容易出错。正如Craig Wilson(驱动程序的开发人员之一)所建议的那样,使用
BsonExtraElements
更安全。谢谢I3arnon,但是你能再解释一下吗?我没有任何问题,但我也不是职业选手。谢谢
BsonIgnoreExtraElements
忽略额外的数据,因此您不知道何时隐藏问题
BsonExtraElements
会将额外的数据存储在类的特定属性中,这样您至少可以确定什么时候您的结构不适合。您可以记录这些信息,甚至可以使用实际的非类型化数据。好吧,我也红色了帮助文件,但是当您在开发类时,数据库已经使用测试数据运行,并且您正在向类添加额外的字段/属性,您将永远不会发现自己需要处理盲数据,您缺少来自Mongo的数据。由于缺少字段而导致不匹配,它总是会出错,BsonExtraElements也支持吗?我之所以使用它,是因为我知道有些文档缺少字段,因为它是该类早期版本中字段较少的数据。使用IgnoreExraElements,我的类解析所有数据,包括new和old.AFAIK,当类中存在文档中没有的额外属性时,驱动程序不会引发异常。虽然这是一个有效的解决方案,但容易出错。正如Craig Wilson(驱动程序的开发人员之一)所建议的那样,使用
BsonExtraElements
更安全。谢谢I3arnon,但是你能再解释一下吗?我没有任何问题,但我也不是职业选手。谢谢
BsonIgnoreExtraElements
忽略额外的数据,因此您不知道何时隐藏问题
BsonExtraElements
会将额外的数据存储在类的特定属性中,这样您至少可以确定什么时候您的结构不适合。您可以记录这些信息,甚至可以使用实际的非类型化数据。好吧,我也红色了帮助文件,但是当您在开发类时,数据库已经使用测试数据运行,并且您正在向类添加额外的字段/属性,您将永远不会发现自己需要处理盲数据,您缺少来自Mongo的数据。由于缺少字段而导致不匹配,它总是会出错,BsonExtraElements也支持吗?我