c# - 如何从 mongo 文档中删除 _v 和 _t

标签 c# mongodb

我找遍了,没有解决方案。这是我插入数据的方式:

string value = db.StringGet("test");
string cleaned = value.Replace("u'", "'").Replace("\"", "");
var jsonDoc = Newtonsoft.Json.JsonConvert.SerializeObject(cleaned);
Dictionary<string, string> dict = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonDoc);
values.Add(dict);

_collection.InsertMany(values.Select(x => x.ToBsonDocument()));

这是数据在数据库中的样子

{ 
    "_id" : ObjectId("5aaabf7ac03af44892673031"), 
    "_t" : "MongoDB.Bson.BsonDocument, MongoDB.Bson", 
    "_v" : {
        "profile" : "myprofile", 
        "source" : "thesource", 
        "hostname" : "myhost", 
        "pgm" : "mypgm"
    }
}

我不想在 mongo 中像这样格式化数据。我的原因是因为我有几个客户端访问数据库。我宁愿数据格式如下:

{ 
    "_id" : ObjectId("5aaabf7ac03af44892673031"), 
    "profile" : "myprofile", 
    "source" : "thesource", 
    "hostname" : "myhost", 
    "pgm" : "mypgm"
}

最佳答案

在我们的团队中,我们通过序列化和反序列化对象解决了这个问题,使它成为一个 ExpandoObject。尝试这样的事情:

    JsonSerializer DynamicDataJsonSerializer;
    DynamicDataJsonSerializer = JsonSerializer.Create(JsonConverterSetup.GetTransparentSerializerSettings());

    MyClass dataToSaveToMogo;
    var dataToSaveToMogoAsDynamic = DynamicDataJsonSerializer.Deserialize<ExpandoObject>(DynamicDataJsonSerializer.Serialize(dataToSaveToMogo));

然后保存 dataToSaveToMogoAsDynamic。

希望对你有帮助

关于c# - 如何从 mongo 文档中删除 _v 和 _t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49307482/

相关文章:

c# - [Test](可选 [Values])与 [TestCase](可选 ExpectedResult)之间有什么区别?

c# - 使用复选框文本值在数据库中执行搜索

javascript - meteor js创建mongodb数据库钩子(Hook)以固定间隔存储来自API的数据

mongodb - 如何在 mongodb 查询结果中获取标签计数?

c# - 单元格编辑后 DataGrid 刷新

c# - 如何在winforms中定期自动备份MySql数据库?

javascript - 如何在meteor中访问mongos db.system.js?

python - 使用allowDiskUse时语法无效:True through PyMongo

javascript - 启动 MongoDB 数据库时出错

c# - DiscardableAttribute 有什么用?