如何更新MongoDB中上限集合中的单个字段?

时间:2017-05-11 17:03:10

标签: mongodb capped-collections

db.events.update(
   {upload:0},
   {$set:{upload:1}},
   {multi:true}
)

我收到以下错误,即使我只是用另一个整数替换一个整数。

Cannot change the size of a document in a capped collection: 402 != 406

1 个答案:

答案 0 :(得分:2)

看起来您正在插入double而不是int32doubleint32宽4个字节)。

来自mongodb type documentation

  

<强> NumberInt

     

mongo shell将所有数字视为浮点值   默认。 mongo shell提供了NumberInt()构造函数   明确指定32位整数。

要解决此问题,只需将代码更改为:

 db.events.update(
   {upload:0},
   {$set:{upload: NumberInt(1)}},
   {multi:true}
)