c# – 将JSON数据存储在MongoDB中的_v属性之外

我正在使用MongoDB作为我的Web应用程序的数据库.我正在寻找一种方法来插入和检索动态JSON数据,而无需为它创建任何类型的类.

我的Web应用程序发送JSON字符串.然后在后端我将该JSON字符串转换为BsonDocument并将其插入MongoDB:

var obj = BsonDocument.Parse(json.ToString());
Db.GetCollection<dynamic>("Items").InsertOneAsync(obj);

这很好,除了MongoDB中的结构如下所示:

_id = ObjectId("55618d35d747199c0a486fe0")
_t = MongoDB.Bson.BsonDocument, MongoDB.Bson
_v = (3 fields)
   username = "JohDoe"
   password = "xxxxx"
   email = "em@il.com"

换句话说,我的JSON对象存储在_v中.我不想将所有内容存储在“子”属性中.我希望它看起来像这样:

_id = ObjectId("55618d35d747199c0a486fe0")
_t = MongoDB.Bson.BsonDocument, MongoDB.Bson
username = "JohDoe"
password = "xxxxx"
email = "em@il.com"

是否可以存储这样的数据而不创建我自己的任何类型对象?

解决方法:

使用GetCollection< dynamic>等效于使用GetCollection< object>,当集合的类型是object时,每个值都需要与_t和_v字段一起存储. _t字段表示类型,_v字段表示值.

你能使用GetCollection< BsonDocument>代替?这将导致文档直接存储而不需要_t和_v字段.

上一篇:知识点 go操作mongodb


下一篇:mongodb查询案例,golang库mgo案例