MongoDB(带C#驱动程序),有没有日志?

时间:2011-07-28 08:41:00

标签: c# mongodb mongodb-.net-driver

我想知道当您尝试在文档Customer的字段名称中插入内容时是否有任何日志。但是字段名称已在mongodb中重命名为 FirstName

因为我刚试过类似的东西,所以我将每个字段的名称名称重命名为我的客户文档集合的 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));
 }

以下是我的示例:字段名称已在dababase中为我的集合Application的每个文档重命名为 DefinedFor ,我运行它,并且没有例外抛出。我的visual studio启用了CLR例外。

2 个答案:

答案 0 :(得分:1)

没有这样的日志。您应该关心自己重命名的字段。

您可以为每次更新编写单元测试,以确保更新正常运行并检测重命名问题。

我猜查询/更新中的字符串名称是官方驱动程序中最薄弱的一面。

答案 1 :(得分:1)

MongoDB是一个无架构数据库,因此没有“字段不再存在”错误。任何字段可能存在也可能不存在,因此它的缺失不是错误。

未来版本的C#驱动程序将支持LINQ,它将在编译时捕获一些错误,并且还将处理从C#属性名称到BSON元素名称的映射,这应该有助于避免大多数不匹配。