MongoDB updateMany不是一个函数

MongoDB updateMany不是一个函数,mongodb,Mongodb,我正在使用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 }

我正在使用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函数?

版本3.2中引入了updateMany,因为您在版本2.6.10中使用mongo shell,所以这里没有它。您需要更新CLI,它应该可以按预期工作。

版本3.2中引入了updateMany,因为您在版本2.6.10中使用mongo shell,所以在那里缺少它。你需要更新你的CLI,它应该可以正常工作。

使用
db.update({},{$mul:{val:0.5},{multi:true})
阅读更多关于
update
here()的信息。顺便说一句,我认为你必须使用
$set
操作符。否则,所有数据都将被重写。@Gor是,重写aim需要的所有数据。我只是好奇,为什么没有更新mongo cli的版本是什么?@Ashish 2.6.10answer@Petr我记得,updateMany函数仅适用于mongo shell版本>3.use
db.update({},{$mul:{val:0.5},{multi:true})
阅读更多关于
更新的信息()顺便说一句,我想你必须使用
$set
操作符。否则,所有数据都将被重写。@Gor是,重写aim需要的所有数据。我只是好奇,为什么没有更新mongo cli的版本是什么?@Ashish 2.6.10answer@Petr我记得,updateMany函数仅适用于MongoShell版本>3。
> 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 }