Mat*_*toy 5 javascript mongodb node.js angularjs
我想为我的网站使用 angular js 的 mongodb 驱动程序计算服务器 js 文件已启动的次数。
我想保存一个名为 counter 的变量,它的值为 0,然后在每次服务器运行时增加该值。我的代码在下面。正如您所看到的,我的代码并没有真正更新数据库中的字段。只是变量。
除此之外......好吧......我写的整个代码似乎是不好的做法。我基本上有一个带有 {id:<>,count:0} 的文档,我循环遍历所有大于 -1(即整数)的计数字段,尽管我只有 1 个计数字段。
没有任何简单的方法可以从数据库中持久化/获取这个 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();
});
Run Code Online (Sandbox Code Playgroud)
尝试这个:
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();
});
Run Code Online (Sandbox Code Playgroud)
这应该足以让您开始。听起来你正在尝试做类似的事情:
获取集合中属性“count”大于 -1 的所有对象
将其值增加 1
将其保存到集合中。
您缺少的步骤是步骤 3。按照您的方式操作,您必须进行批量更新。我给你的例子是更新一条记录。