如何在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}
)