pymongo upsert 增量在子集合中



我有一个mongo db对象,我想以以下格式创建

{year:{month:{day:counts:{c:1}}}}
{
    "2014" : {
        "11" : {
            "19" : {
                "Counts" : {
                    "c" : 1
                }
}
}
}
}

它实际上能够每天计算一些事件,所以将来我应该能够计算特定日期的事件,或者如果我想计算几天,甚至可以将它们汇总。

我正在使用pymongo,我认为可以使用更新器来完成,但是如何在像"Count"这样的文档的属性上做到这一点。C"这是我无法实现的

postdata = {"2014":{"11":{"20"}},"date": curdate}
install_counter.update(postdata,{'$set':{},'$inc':{"2014":{"11":{"20":1}}}},true,false)

我不确定您要做什么 - 插入类似上面的文档,还是增加嵌套的c字段?看起来您想增加c,所以请尝试

collection.update({ "_id" : <_id of doc> }, { "$inc" : { "2014".11.19.Counts.c" : 1 } })

如果这不是你要找的,你能更清楚地表达这个问题吗?

首先,您应该从查询中删除"$set"部分。其次,增量的工作方式是这样的: "$inc": {"2014.11.20.Counts.c": 1}

最新更新