我对 mongoDB 完全陌生,我正在学习基础知识。我正在使用 mongoDB 和 Robo 3T 的 .NET 驱动程序(2.7.2)作为实用程序来手动管理数据库。我创建了一个TestDB数据库,在其中创建了myCollection许多这样的测试文档:/* 1 */{ "_id" : ObjectId("5c124ee01c2477487574b212"), "x" : 1.0}/* 2 */{ "_id" : ObjectId("5c17d26369babb0c04610a33"), "count" : 1}/* 3 */{ "_id" : ObjectId("5c17d40f6002a11c44bc2c42"), "name" : "MongoDB", "type" : "Database", "count" : 1, "info" : { "x" : 203, "y" : 102 }}/* 4 */{ "_id" : ObjectId("5c17dead9e83de138c71278a"), "counter" : 0}/* 5 */{ "_id" : ObjectId("5c17dead9e83de138c71278b"), "counter" : 1}/* 6 */{ "_id" : ObjectId("5c17dead9e83de138c71278c"), "counter" : 2}/* 7 */{ "_id" : ObjectId("5c17dead9e83de138c71278d"), "counter" : 3}/* 8 */{ "_id" : ObjectId("5c17dead9e83de138c71278e"), "counter" : 4}/* 9 */{ "_id" : ObjectId("5c17dead9e83de138c71278f"), "counter" : 5}/* 10 */{ "_id" : ObjectId("5c17dead9e83de138c712790"), "counter" : 6}/* 11 */{ "_id" : ObjectId("5c17dead9e83de138c712791"), "counter" : 7}/* 12 */{ "_id" : ObjectId("5c17dead9e83de138c712792"), "counter" : 8}/* 13 */{ "_id" : ObjectId("5c17dead9e83de138c712793"), "counter" : 9}/* 14 */{ "_id" : ObjectId("5c17dead9e83de138c712794"), "counter" : 10}等等......在我的控制台应用程序(在 Visual Studio 2017 社区)中,我创建了两个这样的类:public class MyClass{ [BsonId] public ObjectId ID { get; set; } public string name { get; set; } public string type { get; set; } public int count { get; set; } public List<Info> info { get; set; }}public class Info{ public int x { get; set; } public int y { get; set; }}我想从数据库中获取一个文档,该文档/* 3 */在我的示例数据中标记为更复杂的数据。我尝试在 main 方法中获取数据的程序是这样的:当我启动应用程序时,我收到此错误:System.FormatException:"An error occurred while deserializing the info property of class TEST_MongoDB_consoleApp.MyClass: Cannot deserialize a 'List<Info>' from BsonType 'Document'."我究竟做错了什么 ?在这种情况下,程序运行时没有任何异常,并且我从文档中获得了正确的 ObjectID 值。再次 - 我做错了MyClass什么?
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
这会有所帮助。在 Mongodb 中,对于集合中的每个条目,都需要有一个 objectid 后跟字段。
需要更改您的信息类,例如:
public class Info
{
[BsonId]
public ObjectId Id {get; set; }
public int x { get; set; }
public int y { get; set; }
}
- 1 回答
- 0 关注
- 723 浏览
添加回答
举报
0/150
提交
取消
