我有一个供客户使用的mongo收藏品。共有280条记录。
前110条记录没有BSON对象ID,它们仅具有类型为int的customerId字段。
在第一个110之后,其他记录同时具有customerId字段和_id对象ID字段。
我在解决方案中找到的代码为此具有一个预制模型,该模型中也定义了对象ID。
如果我做这样的事情:
List<Customer> customers = _customerCollection.Find(_ => true).ToList();
我收到一个错误,因为前110条记录中没有BSON对象ID。如果我更改模型并注释掉该对象ID,则当到达具有该对象ID的对象时会收到错误消息。
有没有办法我可以解决这个问题并使之工作?我正在迁移数据并将其重新映射到其他模型。
我没有制作mongoDB或现有代码,也从未使用过mongoDB,所以我对此的了解有限。
更新-示例代码
这是课程的代码
public class Customer
{
//[BsonId]
//[BsonIgnoreIfDefault]
//[JsonIgnore]
//public ObjectId Id;
//public int CustomerId { get; set; }
public string CustomerName { get; set; }
public string CustomerDomain { get; set; }
...omitted other fields...
}
这是示例文档
{
"_id" : ObjectId("5c05a78ab66f775aefecafd9"),
"CustomerId" : 1000006,
"Warehouse" : "505",
"CustomerName" : "Some name",
"Email" : ""
}
答案 0 :(得分:0)
我通过两次复制收藏来解决了这个问题。在一个副本中,我删除了所有具有文档的BSON对象ID,在另一个副本中,删除了其他系列的文档。
我运行了两次代码,更改了模型以适应要迁移的文档。 (例如,一次使用对象ID,一次使用int ID)