Javascript 节点js mongodb中的增量计数器
我想为我使用mongodb驱动程序的网站计算服务器js文件启动的时间 我想保存一个变量命名计数器,该计数器的值为0,然后在服务器每次运行时递增该值。我的代码如下。正如您所看到的,我的代码没有实际更新数据库中的字段。只是变量 除此之外。。。好。。我写的整个代码似乎都是糟糕的练习。我基本上有一个{id:,count:0}的文档,我正在遍历所有大于-1的count字段(即整数),尽管我只有1个count字段 是否有任何简单的方法可以从数据库中持久化/获取这个1值 如何以最简单的方式使用$inc之类的东西更新数据库内部的字段 谢谢Javascript 节点js mongodb中的增量计数器,javascript,angularjs,node.js,mongodb,Javascript,Angularjs,Node.js,Mongodb,我想为我使用mongodb驱动程序的网站计算服务器js文件启动的时间 我想保存一个变量命名计数器,该计数器的值为0,然后在服务器每次运行时递增该值。我的代码如下。正如您所看到的,我的代码没有实际更新数据库中的字段。只是变量 除此之外。。。好。。我写的整个代码似乎都是糟糕的练习。我基本上有一个{id:,count:0}的文档,我正在遍历所有大于-1的count字段(即整数),尽管我只有1个count字段 是否有任何简单的方法可以从数据库中持久化/获取这个1值 如何以最简单的方式使用$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();
});
这应该足以让你开始。听起来你好像在尝试做以下事情:
是增量的文档。是批量更新的文档。这是
doc.count+1代码>假设要做什么?更新为doc.count=doc.count+1;它假定将db(count)中的值增加1这是什么语法?我在尝试您的代码时未定义:db.users.update(…)。最后我做了db.collection('users').updateOne({“name”:“id”},{$inc:{count:1}});这就解决了问题。我给你+1表示支持,给$inc表示支持,你可以使用点符号引用一个集合。i、 e.db.users等同于db.collections(“用户”)。看看我的解决方案。。这里可能有比赛条件。(此外,“更新”拼写错误,“udpate”)。您可能正在更新之前关闭连接。现在移除db close,看看会发生什么。如果可以,也可以在此处发布错误。我很好奇,谢谢。当我使用您的版本时,db.users等于未定义。你在哪里看到比赛情况?也许这就是问题所在。。。