2012-04-21 62 views
0

有誰知道我可以如何在MongoDB中更新。更新MongoDB

我想timesvisted

// Test data 
var currentUser = "John" 
var currentPage = "pageName" 
var timesvisited = 59 


Page.find({"_id" : currentUser}, [], {},function(err, pages) { 
      pages = pages.map(function(ud) { 
       return { userDetails: ud}; 
      }); 


//database structure example 
{ "_id" : "John", 
    "pageName" : { "totalVisits" : 58, 
       "timeOnPage" : 2432, 
       "lastVisitDate" : "10/11/2011", 
       "clickNoOnPage" : "5" 
       }, 
    "anotherPageName" : { "totalVisits" : 18, 
       "timeOnPage" : 5362, 
       "lastVisitDate" : "01/10/2011", 
       "clickNoOnPage" : "15" 

我試圖更新totalVisits值更新totalVisits並試圖像

{$set : { pages[0].userDetails[currentPage].totalVisits : timesvisted}} 

不過,我得到一個「語法錯誤:意外的令牌[」消息

我遇到的問題之一是當前頁面可以改變的[currentPage]節,所以我不能硬編碼pageName。

編輯* **

我已經修改了這一行

lastVisitedSiteDate = {$set : { "pageName.totalVisits" : timesvist}}; 

,這工作得很好。但是,我需要pageName不被硬編碼,其需要像currentPage一樣,因此可以將不同的頁面名稱傳遞給它。 anotherPageName。

+0

閱讀此:http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29 – 2012-04-21 22:41:15

+0

您最好發佈您想要執行更新的文檔的正確結構。 – 2012-04-23 10:07:21

回答

0

Mongo的find函數的第二個參數指定要撤回哪些字段。它需要成爲一個文檔,如{},而不是一個數組。