集合中有四个用户“ AB”,“ BC”,“ CD”,“ EF”和十万个Mongo文档。

对于所有文档,都有一个名为“ AssignedTo”的键,其值为空。

{"AssignedTo":""}


如何以公平的方式依次将那些用户分配给Spring Data中的> 100 000个数据?

最佳答案

Mongo Shell具有在其中执行JavaScript代码的功能。以下解决方案使用循环策略更新文档的AssignedTo。

登录到MongoShell并连接所需的数据库,然后执行以下命令

> var counter = 0
> db.collectionName.find({}).forEach( function(thisDoc) {
... if (counter % 4 == 0) {
... db.collectionName.update({_id: thisDoc._id}, {$set: {"AssignedTo": "AB"}});
... } else if (counter % 4 == 1) {
... db.collectionName.update({_id: thisDoc._id}, {$set: {"AssignedTo": "BC"}});
... } else if (counter % 4 == 2) {
... db.collectionName.update({_id: thisDoc._id}, {$set: {"AssignedTo": "CD"}});
... } else if (counter % 4 == 3) {
... db.collectionName.update({_id: thisDoc._id}, {$set: {"AssignedTo": "EF"}});
... }
... counter = counter + 1;
... })

10-06 13:05