[英]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.