mongodb - 批次的概念

时间:2013-07-16 08:36:47

标签: node.js mongodb

我正在使用带有Node.js的MongoDB,并且遇到了特定情况。

假设我有一个名为samples的文档存储,用于从客户端计算机收集一些时间戳。

我想介绍 批次的概念

更准确地说,我希望继续插入现有文档,直到 示例 的数量达到阈值,之后我想创建一个新文档。< / p>

我可以继续将样本数量插入并更新到同一文档中,如下所示

db.timestamps.update(
        {"guid": guid},
        {
            $inc: { samples: 1},
            $push: { timings: { clientTime: clientTime } }
        },
        { upsert: true }
    );

如果我的 样本计数 达到300,那么如何为此示例添加检查以停止插入和创建新文档?

由于

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以在没有两个查询的情况下执行此操作,但您可以尝试

db.col.update({
    guid:guid, samples: {$lt:300}
},
{
    $inc: { samples: 1},
    $push: { timings: { clientTime: clientTime } }
},
{
    upsert: true
})

应该每300批格式插入一个新文档:

{ "_id" : ObjectId("51e518ad8d065caa3b208661"), "guid" : 10, "samples" : 1, "timings" : [  {  "clientTime" : 1 } ] }