在节点js mongodb中增加计数器

我想做一个服务器js文件已经开始多less次的计数器,我的网站使用mongodb驱动程序的angularjs。

我想保存一个值为0的variables命名计数器,然后每次运行服务器时增加该值。 我的代码在下面。 正如你可以看到我的代码不会在数据库中acrtally更新字段。 只是变数。

除此之外…呃..我写的整个代码看起来好像是不好的做法。 我基本上有{id:<>,count:0}的文档,我正在循环所有更大的-1(即整数)的计数字段,虽然我只有一个计数字段。

是不是有任何简单的方法来坚持/从数据库获得这个1值?

如何以最简单的方式更新数据库本身的字段?

谢谢

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的对象都给我

  2. 将其值增加1

  3. 保存到集合中。

你错过的步骤是第3步。做你的方式,你必须做批量更新。 我给你的例子是更新一个logging。

这里是增量的文档。 这里是批量更新的文档。