0

有谁知道我如何在 MongoDB 中更新。

我想用 timesvisted 更新 totalVisits

// 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: Unexpected token [”消息

我遇到的问题之一是 [currentPage] 部分,因为 currentPage 可以更改,因此我无法对 pageName 进行硬编码。

编辑* **

我已经修改了这一行

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

这很好用。但是,我需要不要硬编码 pageName,它需要类似于 currentPage,以便可以将不同的页面名称传递给它,例如 anotherPageName。

4

1 回答 1

0

Mongo 函数的第二个参数find指定要拉回哪些字段。它需要是一个文档,例如{},而不是一个数组。

于 2012-04-21T22:45:49.280 回答