简体   繁体   中英

Updating MongoDB

Does anyone know how I can update in MongoDB.

I want to update the totalVisits with 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"

I am trying to update the totalVisits value and have tried something like

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

However I get a "SyntaxError: Unexpected token [" message

One of the problems I am having is with the [currentPage] section as currentPage can change so I can not hard code the pageName in.

Edit * **

I have modified this line

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

and this works fine. However, I need the pageName not to be hard coded in, its needs to be something like currentPage so different page names can be passed into it eg anotherPageName.

The second parameter to Mongo's find function specifies which fields to pull back. It needs to be a document, as in {} , not an array.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM