0

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

totalVisitsを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値を更新しようとしていますが、次のようなものを試しました

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

ただし、「SyntaxError:Unexpectedtoken[」メッセージが表示されます

私が抱えている問題の1つは、[currentPage]セクションにあります。これは、currentPageが変更される可能性があるため、でpageNameをハードコーディングできないためです。

編集*** _

この行を変更しました

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

これは正常に機能します。ただし、pageNameをハードコーディングしないようにする必要があります。これは、currentPageのようなものである必要があります。これにより、anotherPageNameなどのさまざまなページ名を渡すことができます。

4

1 に答える 1

0

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

于 2012-04-21T22:45:49.280 に答える