【问题标题】:Store JSON data outside of _v property in MongoDB将 JSON 数据存储在 MongoDB 中的 _v 属性之外
【发布时间】:2017-12-08 08:26:04
【问题描述】:

我使用 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"

是否可以在不创建任何类型的对象的情况下存储这样的数据?

【问题讨论】:

    标签: c# mongodb bson


    【解决方案1】:

    使用GetCollection 相当于使用GetCollection,当集合的类型是object 时,每个值都需要存储一个_t 和一个_v 字段。 _t 字段表示类型,_v 字段表示值。

    你能用 GetCollection 代替吗?这将导致文档直接存储,不需要 _t 和 _v 字段。

    【讨论】:

    • 使用 GetCollection 为我工作。谢谢。
    【解决方案2】:

    就我而言,要解决我正在使用的问题:

    GetCollection&lt; BsonDocument &gt; 插入新文档。

    GetCollection&lt; dynamic &gt; 查询数据库。

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      相关资源
      最近更新 更多