gpt4 book ai didi

c# - MongoDB C# 2 驱动程序 - 无法从 BsonType 'String' 反序列化 'Double'

转载 作者:行者123 更新时间:2023-12-03 09:21:09 24 4
gpt4 key购买 nike

我是 MongoDB 新手。我正在尝试检索查找集合中的所有条目。我收到以下错误:

{"An error occurred while deserializing the Symbol property of class Stock.Models.StockLookup: Cannot deserialize a 'String' from BsonType 'Double'."}

这是我收到错误的代码:

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; }
}

谁能帮我找出问题所在吗?任何帮助将不胜感激。

谢谢!

最佳答案

这条消息几乎已经说明了一切。您将 Symbol 定义为 string,而在数据库中,有一些文档具有 double 类型 Symbol。它导致反序列化问题。要找出这些非法数据,请尝试:

db.StockLookup.find({Symbol: {$type: 1}}

不要如果您的集合中有大量数据,请不要这样做。这方面没有索引,而且速度会很慢。在这种情况下,您可能需要在检查类型之前添加其他条件来过滤数据。

有一个reference of all $types 。您可能需要检查这些数据如何进入您的集合,否则将会有更多非法数据。

关于c# - MongoDB C# 2 驱动程序 - 无法从 BsonType 'String' 反序列化 'Double',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com