2013-05-16 38 views
0

我有一個名爲books的集合。 當使用瀏覽特定書籍時,我通過編號獲取書籍。 但是我也想在每次閱讀文檔時將查看次數增加1。通過單個調用讀取並更新一個mongodb文檔

我可以用兩個命令:一個閱讀和另一個由1

計數器更新視圖是否有wayy通過像findAndModify單個命令做到這一點?

如何使用CSharp驅動程序?

Books: 
{ 
    { 
    "_id": "1" 
    "title" : "Earth Day", 
    "author" : "John ", 
    "pages" : 212, 
    "price" : 14.5, 
    "views" : 1000 
    }, 
    { 
    "_id": "2" 
    "title" : "The last voyage", 
    "author" : "Bob", 
    "pages" : 112, 
    "price" : 10.5, 
    "views" : 100 
    } 
} 

我有這樣的:

var query = Query.And(Query.EQ("_id", id)); 
      var sortBy = SortBy.Null; 
      var update = Update.Inc("views", 1); 
      var result = Books.FindAndModify(query, sortBy, update, true); 

但是我如何才能匹配文件回來?

編輯:我得到它的工作..

return result.GetModifiedDocumentAs<T>(); 

我的問題是這個調用GetModifiedDocumentAs()將再次訪問數據庫?

回答

1

不,它不會再次訪問數據庫。

當對此類事情有疑問時,請看the source。它顯示GetModifiedDocumentAs方法只是從現有的Response對象中訪問生成的文檔,並將其轉換爲請求的類型。