我有一个场景,我需要保持日期和计数。在某些情况下,计数需要非常快地增加。
我正在使用以下代码来增加计数:
var today = new Date();
today.setHours(0,0,0,0);
MyModel.update({date:today},{$inc:{count:1}},{upsert:true}).exec(function(err,result)
{
if(err)
console.error(err);
});
但有时当函数调用速度极快时,upsert会创建多个新文档。
我第一次有200次upserts,它执行了以下操作:
/* 1 */
{
"_id" : ObjectId("577fb98670e5b643e77584ce"),
"date" : ISODate("2016-07-07T18:30:00.000Z"),
"count" : 197
}
/* 2 */
{
"_id" : ObjectId("577fb98670e5b643e77584cf"),
"date" : ISODate("2016-07-07T18:30:00.000Z"),
"count" : 1
}
/* 3 */
{
"_id" : ObjectId("577fb98670e5b643e77584d0"),
"date" : ISODate("2016-07-07T18:30:00.000Z"),
"count" : 1
}
/* 4 */
{
"_id" : ObjectId("577fb98670e5b643e77584d1"),
"date" : ISODate("2016-07-07T18:30:00.000Z"),
"count" : 1
}
除了提前创建文档之外,还有什么方法可以解决这个问题吗?
答案 0 :(得分:0)