![](/img/trans.png)
[英]Deserialize Mongo BSON array of location coordinates to custom C# class
[英]C# class to BSON roundtrip
我试图使用MongoDB来存储我在应用程序中存在的某些类。
我使用的代码是
string json = JsonConvert.SerializeObject(item);
BsonDocument document = BsonDocument.Parse(json);
...
await collection.InsertOneAsync(document);
这似乎工作正常。 当我从MongoDB中检索文档时,会得到一个BsonDocument,其中添加了“ _id”属性。
如何返回原始类的实例(不具有_id属性)
MongoDB自动添加对象ID(_id)属性作为主键。 在您向MongoDB中进行任何形式的插入时都会发生这种情况(无论您导入JSON,BSON,CSV还是其他方式)
http://docs.mongodb.org/manual/reference/object-id/
如果要在C#应用程序中解决此问题,一种选择是从MongoDB导出到CSV,然后使用一种工具将CSV导入JSON,同时有选择地避免使用_id。 但是,这似乎有点复杂。
也许您可以只保留_id属性并将其设置为原始C#类中的可选参数? 您能解释为什么_id参数存在是一个问题吗?
从数据库中读取_id字段后,还可以从其删除BidDocument:
var document = collection.Find(new BsonDocument()).FirstAsync();
document.Remove("_id");
这只会从内存中的BsonDocument(文档变量的值)中删除_id,而不会从数据库中存储的文档中删除_id。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.