java - 如何为每个 Mongo 文档分配一个用户(字符串值)?

标签 java mongodb spring-data

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

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

{"AssignedTo":""}

如何以公平的方式将这些用户按顺序分配给 Spring Data 中超过 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;
... })

关于java - 如何为每个 Mongo 文档分配一个用户(字符串值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184552/

相关文章:

java - java中数组列表值相乘

java - Android开发中的循环继承——片段、 Activity 和界面

java - Java 中的 SLinkedList 和 Node

mongodb - 没有打开的连接时 mongod run with nohup 退出

java - 将 AWS Lambda 函数放入 VPC,然后 "IOException: Connection reset by peer"开始发生,但只是偶尔发生

mongodb - 如何有效地将来自justdial scraper引擎的数百万数据手动存储到mongodb中?

node.js - 查询缓慢/延迟空集合Nodejs MongoDB

java - 如何使用jpaRepository的deleteInBatch方法获取已删除行的记录数

java - 嵌套异常是 java.lang.NoClassDefFoundError : org/springframework/data/mapping/IdentifierAccessor

java - EnableSpringDataWebSupport 似乎不适用于 WebMvcConfigurerAdapter