我正在使用C#驅動程序更新Mongodb中的文檔。我已驗證該更新已成功完成,但如果在更新後立即選擇包含更新文檔的集合,則不會立即看到新值。如果我在更新之後但在選擇之前在代碼中放置斷點,我將在Select中看到結果中的新值。如果我讓代碼直通,我會在我的名字集合中獲得舊值。我試圖改變寫作關注點,但我不認爲就是這樣。有沒有辦法將這兩個操作鏈接在一起,以便在更新完成之前不會發生選擇?Mongodb C#驅動程序 - 更新文檔,然後選擇與更新文檔的集合
var qry = Query.EQ("_id", new ObjectId(id));
var upd = Update.Set("age", BsonValue.Create(newAge));
db.GetCollection<MongoTest>("mongotest").Update(qry,upd);
... would like to pause here until update is complete ...
var names = db.GetCollection<MongoTest>("mongotest")
.FindAll().SetSortOrder(SortBy.Ascending("name"))
.ToList<MongoTest>();
if (names.Count() > 0)
{
return View(names);
}
這很奇怪,因爲.Net的MongoDb驅動程序是同步的,並且默認爲寫入關注的'1'。這只是MongoDb的一個實例嗎? – WiredPrairie
我會認爲它是共享的,但所討論的數據庫是我使用MongoLab託管版本託管的3個數據庫之一。雖然沒有積極的生產,所以我是唯一一個打他們。 –
哎呀...確認.NET驅動程序是同步的,它指導我的調試順着另一條路徑,並且發現我的代碼吞嚥了一個錯誤。謝謝您的幫助! –