使用变量来使用mongodb更新javascript函数中的文档

时间:2015-11-13 11:57:04

标签: mongodb mongodb-query

当我使用此功能时,mongodb将使用'hour'和'minute'参数 字符串名称,不会使用它们的值... 你能帮助我吗 ? 感谢

shift+arrow

1 个答案:

答案 0 :(得分:0)

使用 bracket notation 创建一个包含密钥的对象,如以下示例所示:

db.system.js.save(
{
    "_id": "inc_visitors_statistics",
    "value": function(siteId) {

        var now = new Date(),
            hour  = now.getHours(),
            minute = now.getMinutes(),
            incObj = {};

        incObj[hour.toString()] = 1;
        incObj[minute.toString()] = 1;

        db.visitors_daily_statistics.update(
            { "siteId": siteId },
            { "$inc": incObj },
            { "upsert": true }
        );

    } 
})

在mongo shell中,您可以使用 db.loadServerScripts() 加载当前数据库的 system.js 集合中保存的所有脚本,直接在shell中调用上面的函数,如下例所示:

db.loadServerScripts();
inc_visitors_statistics("foo");