我正在使用带有Node.js的MongoDB,并且遇到了特定情况。
假设我有一个名为samples
的文档存储,用于从客户端计算机收集一些时间戳。
我想介绍 批次的概念
更准确地说,我希望继续插入现有文档,直到 示例 的数量达到阈值,之后我想创建一个新文档。< / p>
我可以继续将样本数量插入并更新到同一文档中,如下所示
db.timestamps.update(
{"guid": guid},
{
$inc: { samples: 1},
$push: { timings: { clientTime: clientTime } }
},
{ upsert: true }
);
如果我的 样本计数 达到300,那么如何为此示例添加检查以停止插入和创建新文档?
由于
答案 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 } ] }