如何在MongoDB中更新封顶集合中的单个字段?

如何在MongoDB中更新封顶集合中的单个字段?,mongodb,capped-collections,Mongodb,Capped Collections,即使我只是将一个整数替换为另一个整数,但仍会出现以下错误 db.events.update( {upload:0}, {$set:{upload:1}}, {multi:true} ) 看起来您正在插入一个double而不是int32(double比int32宽4字节) 发件人: numberprint mongo shell将所有数字视为浮点值 违约mongo shell提供numberrint()构造函数 显式指定32位整数 要解决此问题,只需将代码更改为: Cannot

即使我只是将一个整数替换为另一个整数,但仍会出现以下错误

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

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

发件人:

numberprint

mongo shell将所有数字视为浮点值 违约mongo shell提供numberrint()构造函数 显式指定32位整数

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

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

确实没有将整数值
{upload:0}
更新为双倍值
{upload:1}
?您可以通过运行
db.events.find({upload:{$type:'int'}})
检查类型,并查看它是否返回任何文档进行验证。您是否在shell中运行查询?
 db.events.update(
   {upload:0},
   {$set:{upload: NumberInt(1)}},
   {multi:true}
)