我是MongoDB的新手。我正在尝试检索查找集合中的所有条目。我收到以下错误:
{“反序列化Stock.Models.StockLookup类的Symbol属性时发生错误:无法从BsonType'Double'反序列化'String'。”}
这是我收到错误的代码:
var stockLookups = _stockLookupRepository.GetAllAsync().Result.OrderBy(l => l.Symbol);
这是被调用的方法:
public async Task<List<StockLookup>> GetAllAsync()
{
var result = await _collection.Find(sl => sl.Symbol != null).ToListAsync();
return result;
}
这是StockLookup类:
public class StockLookup
{
public ObjectId Id { get; set; }
public string Symbol { get; set; }
public string Name { get; set; }
}
任何人都可以帮我弄清问题是什么吗?任何帮助将不胜感激。
谢谢!
答案 0 :(得分:2)
这条消息几乎解释了自己。您将mysqli_fetch_field($result)
定义为Symbol
,而在数据库中则有一些string
类型double
的文档。它导致了反序列化问题。
要找出这些非法数据,请尝试:
Symbol
DON&#39; T 如果您的收藏中包含大量数据,请执行此操作。没有这方面的索引,它会变慢。在这种情况下,您可能需要在检查类型之前添加其他条件来过滤掉数据。
有一个reference of all $types。您可能想要检查这些数据如何进入您的收藏,否则会有更多非法数据。