【发布时间】:2012-04-21 22:37:19
【问题描述】:
有谁知道我如何在 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 以便可以将不同的页面名称传递给它,例如另一个页面名称。
【问题讨论】:
-
您最好发布要对其执行更新的文档的正确结构。
标签: javascript mongodb