[英]MongoDB (with C# driver), is there any log?
我想知道是否有任何是日志当您尝试例如插入东西放到文档客户的字段名 。 但字段名称已在mongodb中重命名为FirstName ?
因为我刚尝试了类似的东西,所以我将名为Name的每个字段名称重命名为我的Customer文档集合的FirstName 。 在我的C#代码中,我有一个过去常用的查询,它删除了名为“John”的客户。 我执行它,查询运行没有错误,但数据库中没有任何反应。 它应该告诉我字段名称不再存在。 你怎么发现的?
谢谢。 约翰
[编辑]我的C#代码:
public void DeleteOverride(Guid applicationId, string settingKey, string name)
{
var query = Query.And(Query.EQ("_id", applicationId), Query.EQ("Settings.Key", settingKey));
var update = Update.Pull("Settings.$.Overrides", new BsonDocument {{"Name", name}});
Run(database => database.GetCollection<ApplicationViewModel>("Applications").Update(query, update));
}
这是在我的示例中:字段Name已在dababase中为我的集合Application的每个文档重命名为DefinedFor ,我运行它,并且没有抛出任何异常。 我的visual studio启用了CLR例外。
没有这样的日志。 您应该关心自己重命名的字段。
您可以为每个更新编写单元测试,以确保更新正常工作并检测重命名问题。
我猜查询/更新中的字符串名称是官方驱动程序中最薄弱的一面。
MongoDB是一个无架构的数据库,因此不存在“字段不再存在”错误。 任何字段可能存在也可能不存在,因此它的缺失不是错误。
未来版本的C#驱动程序将支持LINQ,它将在编译时捕获一些错误,并且还将处理从C#属性名称到BSON元素名称的映射,这应该有助于避免大多数不匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.