我想计算服务器js文件已启动多少次的计数器,对于我的网站使用
mongodb驱动程序进行角度js.
我想保存一个值为0的varible命名计数器,然后在每次运行服务器时递增该值.我的代码如下.正如您所看到的,我的代码不会在数据库中更新字段.只是变数.
旁边……好吧..我写的整个代码看起来像是不好的做法.我基本上有一个{id:<>,count:0}的文档,我循环遍历所有大于-1的计数字段(即整数),尽管我只有1个计数字段.
是不是有任何简单的方法可以持久保存/从db中获取这个值?
如何以最简单的方式使用$inc之类的内容更新数据库内部的字段?
谢谢
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
if (err) {
console.log(err);
}
else {
console.log("Connected correctly to DB.");
var dbusers =db.collection('users');
var cursor =dbusers.find( { "count": { $gt: -1 } } );
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
doc.count=doc.count+1;
}
}
);
}
db.close();
});
最佳答案 试试这个:
MongoClient.connect(url, function(err, db) {
if (err) {
console.log(err);
return db.close();
}
console.log("Connected correctly to DB.");
// update a record in the collection
db.users.update(
// find record with name "MyServer"
{ name: "MyServer" },
// increment it's property called "ran" by 1
{ $inc: { ran: 1 } }
);
return db.close();
});
这应该足以让你入门.听起来你正在尝试做类似的事情:
>获取集合中具有大于-1的属性’count’的所有对象
>将其值增加1
>将其保存到集合中.
您缺少的步骤是第3步.按照您必须进行批量更新的方式进行操作.我给你的例子是更新单个记录.