首页 > 解决方案 > MongoDB updateMany 不是一个函数

问题描述

我正在使用 mongodb 3.6.3

db.version() 3.6.3

我有测试集合:

> db.test.find()
{ "_id" : ObjectId("5c582787e504df9ad201ba77"), "val" : 0.25 }
{ "_id" : ObjectId("5c582789e504df9ad201ba78"), "val" : 1 }
{ "_id" : ObjectId("5c58278be504df9ad201ba79"), "val" : 10 }
{ "_id" : ObjectId("5c58278fe504df9ad201ba7a"), "val" : 11122 }

我想划分所有值。因此,我尝试使用updateMany

> db.test.updateMany({}, {$mul: {val: 0.5}})
2019-02-04T17:08:27.548+0500 TypeError: Property 'updateMany' of object local.test is not a function
> db.test.update({}, {$mul: {val: 0.5}}, {multi:true})
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })
> db.test.find()
{ "_id" : ObjectId("5c582787e504df9ad201ba77"), "val" : 0.125 }
{ "_id" : ObjectId("5c582789e504df9ad201ba78"), "val" : 0.5 }
{ "_id" : ObjectId("5c58278be504df9ad201ba79"), "val" : 5 }
{ "_id" : ObjectId("5c58278fe504df9ad201ba7a"), "val" : 5561 }

为什么没有 updateMany 函数?

标签: mongodb

解决方案


updateMany 已在 3.2 版中引入,因为您使用的是 2.6.10 版的 mongo shell,它在那里丢失了。您需要更新您的 CLI,它应该可以按预期工作。


推荐阅读