馆
藏中有四个用户"AB"、"BC"、"CD"、"EF"和十万个Mongo文档。
有一个名为"分配给"的键,所有文档的值均为空。
{"AssignedTo":""}
如何以公平的方式按顺序将这些用户分配给 Spring 数据中的 100 000 个数据>?
Mongo shell具有在其中执行JavaScript代码的功能。以下解决方案使用轮循机制策略更新文档的"分配给"。
登录到 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;
... })