spring 启动:ReactiveMongo 未能将排序规则信息添加到索引规范以创建索引(@Indexed)
spring boot : ReactiveMongo failed to add collation information to index spec for index creation (@Indexed)
我正在使用 Spring Boot webflux 和 spring 数据反应 mongodb。
我有一个用@Document 注释的用户class,它实现了UserDetails。问题是我有一个带有@Indexed(unique = true) 的username
字段。当应用程序启动时,即使在数据库上创建了索引,它也会抛出以下错误。
这里是 classes:
public abstract class GenericEntity<Tid> {
abstract public Tid getId();
}
@Data
@Document(collection = "users")
@FieldDefaults(level = AccessLevel.PROTECTED)
@NoArgsConstructor
@AllArgsConstructor
public abstract class User extends GenericEntity<String> implements UserDetails {
@Id
String id;
@Size(max = 63)
@NotBlank(message = "First name is missing")
String firstName;
@Size(max = 63)
@NotBlank(message = "Last name is missing")
String lastName;
@NotBlank
@Size(min = 5, max = 40)
@Email(message = "Invalid email address")
@Indexed(unique = true)
String username;
@NotBlank
@Size(min = 8, max = 255)
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
String password;
@NotNull
Boolean enabled = true;
@NotEmpty
List<Role> roles;
}
@Data
@Document(collection = "users")
@TypeAlias(value = "com.abcd.photograph.Photograph")
public class Photograph extends User {
@NotNull
Date birthDate;
}
错误:
2021-05-18 23:26:24.139 INFO 12613 --- [ restartedMain] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080
2021-05-18 23:26:24.164 INFO 12613 --- [ restartedMain] com.assurance.BackApplication : Started BackApplication in 3.885 seconds (JVM running for 4.409)
2021-05-18 23:26:24.182 ERROR 12613 --- [ntLoopGroup-3-7] o.s.d.m.core.ReactiveMongoTemplate : Unexpected exception during asynchronous execution
org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}; nested exception is com.mongodb.MongoCommandException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}
at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:133) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at org.springframework.data.mongodb.core.ReactiveMongoTemplate.potentiallyConvertRuntimeException(ReactiveMongoTemplate.java:2819) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at org.springframework.data.mongodb.core.ReactiveMongoTemplate.lambda$translateException(ReactiveMongoTemplate.java:2802) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at reactor.core.publisher.Flux.lambda$onErrorMap(Flux.java:6597) ~[reactor-core-3.4.2.jar:3.4.2]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.4.2.jar:3.4.2]
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onError(MonoFlatMapMany.java:255) ~[reactor-core-3.4.2.jar:3.4.2]
at com.mongodb.reactivestreams.client.internal.AbstractSubscription.onError(AbstractSubscription.java:142) ~[mongodb-driver-reactivestreams-4.1.1.jar:na]
at com.mongodb.reactivestreams.client.internal.SingleResultCallbackSubscription.lambda$requestInitialData[=14=](SingleResultCallbackSubscription.java:41) ~[mongodb-driver-reactivestreams-4.1.1.jar:na]
at com.mongodb.internal.async.client.AsyncMongoCollectionImpl.lambda$createIndex(AsyncMongoCollectionImpl.java:872) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.client.AsyncMongoCollectionImpl.lambda$executeCreateIndexes(AsyncMongoCollectionImpl.java:925) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.client.OperationExecutorImpl.onResult(OperationExecutorImpl.java:135) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.onResult(OperationHelper.java:531) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CreateIndexesOperation.onResult(CreateIndexesOperation.java:229) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CreateIndexesOperation.onResult(CreateIndexesOperation.java:226) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CommandOperationHelper.onResult(CommandOperationHelper.java:654) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.onResult(DefaultServer.java:285) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.CommandProtocolImpl.onResult(CommandProtocolImpl.java:82) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.onResult(DefaultConnectionPool.java:530) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.UsageTrackingInternalConnection.onResult(UsageTrackingInternalConnection.java:142) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:465) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:440) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:745) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:712) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:582) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:255) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:214) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.readAsync(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.access00(InternalStreamConnection.java:78) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:702) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:687) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:582) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:255) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:214) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.handleReadResponse(NettyStream.java:285) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.access0(NettyStream.java:69) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:344) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:341) ~[mongodb-driver-core-4.1.1.jar:na]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1533) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1282) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1329) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:508) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.internal.ThreadExecutorMap.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.mongodb.MongoCommandException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:454) ~[mongodb-driver-core-4.1.1.jar:na]
... 45 common frames omitted
感谢您的帮助。
根据错误消息“collation: { locale: "users" }”,我假设您在某处设置了排序规则。尝试在您的代码中搜索。
我正在使用 Spring Boot webflux 和 spring 数据反应 mongodb。
我有一个用@Document 注释的用户class,它实现了UserDetails。问题是我有一个带有@Indexed(unique = true) 的username
字段。当应用程序启动时,即使在数据库上创建了索引,它也会抛出以下错误。
这里是 classes:
public abstract class GenericEntity<Tid> {
abstract public Tid getId();
}
@Data
@Document(collection = "users")
@FieldDefaults(level = AccessLevel.PROTECTED)
@NoArgsConstructor
@AllArgsConstructor
public abstract class User extends GenericEntity<String> implements UserDetails {
@Id
String id;
@Size(max = 63)
@NotBlank(message = "First name is missing")
String firstName;
@Size(max = 63)
@NotBlank(message = "Last name is missing")
String lastName;
@NotBlank
@Size(min = 5, max = 40)
@Email(message = "Invalid email address")
@Indexed(unique = true)
String username;
@NotBlank
@Size(min = 8, max = 255)
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
String password;
@NotNull
Boolean enabled = true;
@NotEmpty
List<Role> roles;
}
@Data
@Document(collection = "users")
@TypeAlias(value = "com.abcd.photograph.Photograph")
public class Photograph extends User {
@NotNull
Date birthDate;
}
错误:
2021-05-18 23:26:24.139 INFO 12613 --- [ restartedMain] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080
2021-05-18 23:26:24.164 INFO 12613 --- [ restartedMain] com.assurance.BackApplication : Started BackApplication in 3.885 seconds (JVM running for 4.409)
2021-05-18 23:26:24.182 ERROR 12613 --- [ntLoopGroup-3-7] o.s.d.m.core.ReactiveMongoTemplate : Unexpected exception during asynchronous execution
org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}; nested exception is com.mongodb.MongoCommandException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}
at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:133) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at org.springframework.data.mongodb.core.ReactiveMongoTemplate.potentiallyConvertRuntimeException(ReactiveMongoTemplate.java:2819) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at org.springframework.data.mongodb.core.ReactiveMongoTemplate.lambda$translateException(ReactiveMongoTemplate.java:2802) ~[spring-data-mongodb-3.1.3.jar:3.1.3]
at reactor.core.publisher.Flux.lambda$onErrorMap(Flux.java:6597) ~[reactor-core-3.4.2.jar:3.4.2]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.4.2.jar:3.4.2]
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onError(MonoFlatMapMany.java:255) ~[reactor-core-3.4.2.jar:3.4.2]
at com.mongodb.reactivestreams.client.internal.AbstractSubscription.onError(AbstractSubscription.java:142) ~[mongodb-driver-reactivestreams-4.1.1.jar:na]
at com.mongodb.reactivestreams.client.internal.SingleResultCallbackSubscription.lambda$requestInitialData[=14=](SingleResultCallbackSubscription.java:41) ~[mongodb-driver-reactivestreams-4.1.1.jar:na]
at com.mongodb.internal.async.client.AsyncMongoCollectionImpl.lambda$createIndex(AsyncMongoCollectionImpl.java:872) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.client.AsyncMongoCollectionImpl.lambda$executeCreateIndexes(AsyncMongoCollectionImpl.java:925) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.client.OperationExecutorImpl.onResult(OperationExecutorImpl.java:135) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.onResult(OperationHelper.java:531) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CreateIndexesOperation.onResult(CreateIndexesOperation.java:229) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CreateIndexesOperation.onResult(CreateIndexesOperation.java:226) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.operation.CommandOperationHelper.onResult(CommandOperationHelper.java:654) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.onResult(DefaultServer.java:285) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.CommandProtocolImpl.onResult(CommandProtocolImpl.java:82) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.onResult(DefaultConnectionPool.java:530) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.UsageTrackingInternalConnection.onResult(UsageTrackingInternalConnection.java:142) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:465) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:440) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:745) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:712) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:582) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:255) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:214) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.readAsync(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.access00(InternalStreamConnection.java:78) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:702) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:687) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:582) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.completed(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:255) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:214) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.handleReadResponse(NettyStream.java:285) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream.access0(NettyStream.java:69) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:344) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:341) ~[mongodb-driver-core-4.1.1.jar:na]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1533) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1282) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1329) ~[netty-handler-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:508) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[netty-codec-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.internal.ThreadExecutorMap.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.58.Final.jar:4.1.58.Final]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.mongodb.MongoCommandException: Command failed with error 2 (BadValue): 'failed to add collation information to index spec for index creation: { key: { username: 1 }, name: "username", unique: true, collation: { locale: "users" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: "users" }' on server ******:27017. The full response is {"operationTime": {"$timestamp": {"t": 1621373184, "i": 8}}, "ok": 0.0, "errmsg": "failed to add collation information to index spec for index creation: { key: { username: 1 }, name: \"username\", unique: true, collation: { locale: \"users\" }, v: 2 } :: caused by :: Field 'locale' is invalid in: { locale: \"users\" }", "code": 2, "codeName": "BadValue", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1621373184, "i": 9}}, "signature": {"hash": {"$binary": {"base64": "*****", "subType": "00"}}, "keyId": *****}}}
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.onResult(InternalStreamConnection.java:454) ~[mongodb-driver-core-4.1.1.jar:na]
... 45 common frames omitted
感谢您的帮助。
根据错误消息“collation: { locale: "users" }”,我假设您在某处设置了排序规则。尝试在您的代码中搜索。