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

标签 javascript angularjs node.js mongodb

我想为我的网站使用 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/

相关文章:

javascript - 获取RadioButton值Razor MVC

angularjs - 是否有与 Angular1 的 $location.absURL() 等效的 Angular 2?

javascript - AngularJS - 注入(inject)提供者

Javascript 聊天室 : How to establish who im sending a message to?

node.js - Webpack热重载ENOENT没有这样的文件或目录

javascript - 去除除下划线之外的特殊字符并生成精确的输出作为 javascript 中的输入

javascript - JQuery 表遍历

javascript - AngularJs - 从指令获取默认 HTML

javascript - 如何使用 'request' 和 'async' 在 nodeJS 上收集 Web API 的结果

node.js - 使用node-soap在soap请求中创建重复的 namespace