我是在 C# 中使用 mongo db 的新手,但我正在尝试在 mongo db 中导入大型数据库。MyDb 由仅具有简单参数 Id 、 Body 、 Title Tags 的实体组成。
这是 mongo 中的实体示例。
{
"Id" : "someff asdsa",
"Title" : "fsfds fds",
"Body ": "fsdfsd fs",
"Tags" : "fsdfdsfsd"
}
这是我在 C# 中的 mongoEntity 类
[BsonIgnoreExtraElements]
class Element
{
[BsonId]
public ObjectId _id { get; set; }
[BsonElement("Id")]
public string Id { get; set; }
[BsonElement("Title")]
public string Title { get; set; }
[BsonElement("Body")]
public string Body { get; set; }
[BsonElement("Tags")]
public string Tags { get; set; }
public void ShowOnConsole()
{
Console.WriteLine(" _id {0} Id {1} Title {2} Body {3} Tags {4} ", _id, Id, Title, Body, Tags);
}
}
这是我在 Main 方法中的代码
const string connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase("mydb");
MongoCollection<Element> collection = database.GetCollection<Element>("train");
Console.WriteLine("Zaimportowano {0} rekordow ", collection.Count());
MongoCursor<Element> ids = collection.FindAll();
foreach (Element entity in ids)
{
entity.ShowOnConsole();
}
当我运行此代码时,我能够看到一些数据,但出现异常“无法从 BsonType Int32 反序列化字符串”。我认为其中一个属性在数据库中表示为 int ,但我不知道如何处理它?为什么一个实体中的一个属性是 int 而另一个对象中的相同属性是 string ?我必须做什么才能阅读所有数据库?