MongoDB(与c#驱动程序),是否有任何日志
本文关键字:是否 任何 日志 驱动程序 MongoDB | 更新日期: 2023-09-27 18:03:52
我想知道如果有任何日志,当你尝试例如插入一些东西到字段名称的文档客户。但是字段名已经在mongodb中重命名为FirstName ?
因为我刚刚尝试了类似的东西,所以我将每个名为 name 的字段的名称重命名为FirstName。在我的c#代码中,我有一个曾经工作的查询,它删除了一个名为"John"的客户。我执行它,查询运行没有错误,但在数据库中没有发生任何事情。它应该告诉我字段Name不存在了。你是如何检测的?
谢谢。约翰。
[编辑]我的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已被重命名为数据库中的DefinedFor,用于我的集合应用程序的每个文档,我运行它,没有抛出异常。我的visual studio启用了CLR异常
没有这样的日志。您应该关心字段重命名自己。
您可以为每个更新编写单元测试,以确保更新正确工作并检测重命名的问题。
我猜查询/更新中的字符串名称是官方驱动程序中最弱的一面。
MongoDB是一个模式自由数据库,所以没有这样的事情,"字段不再存在"的错误。任何字段都可以存在,也可以不存在,因此不存在不是错误。
c#驱动程序的未来版本将支持LINQ,它将在编译时捕获一些错误,并且还将处理从c#属性名称到BSON元素名称的映射,这将有助于避免大多数不匹配。