gpt4 book ai didi

javascript - Node js mongodb中的增量计数器

转载 作者:可可西里 更新时间:2023-11-01 09:14:06 27 4
gpt4 key购买 nike

我想为我的网站使用 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();
});

最佳答案

试试这个:

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 步。按照您的方式进行,您必须进行批量更新。我给你的例子是更新一条记录。

here是 increment 的文档。和 here是批量更新的文档。

关于javascript - Node js mongodb中的增量计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com