2012-04-21 23 views
0

MongoDBでの更新方法を知っている人はいますか?MongoDBの更新

私はtotalVisits値を更新しようとしていると私は「にSyntaxError:予期しないトークン[」を得るしかし

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

のようなものを試してみました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を更新します私が午前問題のメッセージ

一つは、私はコード内のページ名をハードすることはできませんので、変更することができますcurrentPageにとして[currentPageに]セクションである。

編集***

私は

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

この行を変更した、これは正常に動作します。しかし、私はハードコード化されていないpageNameが必要です。そのためには、currentPageのようなものでなければならないので、別のページ名を渡すことができます。 anotherPageName。

+0

これを読んでください:http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29 –

+0

あなたは、更新を実行したい文書の正しい構造を投稿してください。 –

答えて

0

モンゴのfind関数の2番目のパラメータは、引き戻すするフィールドを指定します。 {}のように、配列ではなくドキュメントである必要があります。