Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Data Mongo |无法授权在未键入字符串的情况下插入system.indexes文档_Java_Mongodb_Spring Data Mongodb - Fatal编程技术网

Java Spring Data Mongo |无法授权在未键入字符串的情况下插入system.indexes文档

Java Spring Data Mongo |无法授权在未键入字符串的情况下插入system.indexes文档,java,mongodb,spring-data-mongodb,Java,Mongodb,Spring Data Mongodb,我在尝试创建SpringDataMongo存储库时遇到了这个问题 相关代码和配置:- 模型类:- @Document(collection = "USER_DETAIL") public class UserDetail implements org.springframework.security.core.userdetails.UserDetails, Serializable { private static final long serialVersionUI

我在尝试创建SpringDataMongo存储库时遇到了这个问题

相关代码和配置:-

模型类:-

@Document(collection = "USER_DETAIL")
public class UserDetail implements
        org.springframework.security.core.userdetails.UserDetails, Serializable {

    private static final long serialVersionUID = -2637223077307659181L;

    @Id
    private String id;

    @Indexed(dropDups = true, name = "usernameIndex", unique = true)
    private String username;

    private String fname;
    private String lname;
    private List<UserRole> authorities;
    private String password;
    private boolean accountNonExpired;
    private boolean accountNonLocked;
    private boolean credentialsNonExpired;
    private boolean enabled;

        // getter & setters.
}
错误:-无法授权在没有字符串类型为“ns”字段的情况下插入system.indexes文档。“代码”:13,“n”:0,“确定”:1.0} 在com.mongodb.CommandResult.getException(CommandResult.java:77)~[mongo-java-driver-2.11.4.jar:na]

堆栈跟踪:-

Caused by: com.mongodb.WriteConcernException: { "serverUsed" : "localhost/127.0.0.1:27017" , "connectionId" : 10 , "err" : "Cannot authorize inserting into system.indexes documents without a string-typed \"ns\" field." , "code" : 13 , "n" : 0 , "ok" : 1.0}
    at com.mongodb.CommandResult.getException(CommandResult.java:77) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.CommandResult.throwOnError(CommandResult.java:110) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector._checkWriteError(DBTCPConnector.java:102) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:142) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:115) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:248) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.createIndex(DBApiLayer.java:340) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBCollection.createIndex(DBCollection.java:485) ~[mongo-java-driver-2.11.4.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex(MongoPersistentEntityIndexCreator.java:135) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForAndCreateIndexes(MongoPersistentEntityIndexCreator.java:129) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForIndexes(MongoPersistentEntityIndexCreator.java:121) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.onApplicationEvent(MongoPersistentEntityIndexCreator.java:105) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.onApplicationEvent(MongoPersistentEntityIndexCreator.java:46) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:333) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:307) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:181) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:141) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:67) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getEntityInformation(MongoRepositoryFactory.java:141) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getTargetRepository(MongoRepositoryFactory.java:83) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:158) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:224) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:210) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:108) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    ... 40 common frames omitted
更新:-

SpringDataMongo版本-1.5.0.0发布。 构建系统-Maven


谢谢您的帮助。

您需要升级到mongo java驱动程序2.12.1

在Spring Data MongoDB 1.5中,他们从collection.ensureIndex切换到collection.createIndex。 在2.11.4驱动程序中,这没有将默认选项放在索引上,即“name”和“ns”选项。这在2.12.1驱动程序中是固定的


请参阅:。

MongoDB服务器是什么版本?@chrylis-MongoDB 2.6请同时发布您正在使用的Spring数据组件的版本,以及您如何管理您的构建(Maven/Gradle?).version-1.5.0.RELEASE | Maven for build。您救了我一命。我在使用2.4版本的mongo时遇到了同样的问题,消息是“索引无效的ns”“.更新到2.6使我达到了这一目标。谢谢
@Configuration
@EnableMongoRepositories(basePackages = { "x.y.z.repository" })
public class MongoRepositoryConfig {

    @Bean
    public MongoTemplate mongoTemplate() throws UnknownHostException {
        MongoTemplate mongoTemplate = new MongoTemplate(mongo(), "expunto");
        return mongoTemplate;
    }

    @Bean
    public Mongo mongo() throws UnknownHostException {
        MongoClient client = new MongoClient("localhost");
        return client;
    }

}
Caused by: com.mongodb.WriteConcernException: { "serverUsed" : "localhost/127.0.0.1:27017" , "connectionId" : 10 , "err" : "Cannot authorize inserting into system.indexes documents without a string-typed \"ns\" field." , "code" : 13 , "n" : 0 , "ok" : 1.0}
    at com.mongodb.CommandResult.getException(CommandResult.java:77) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.CommandResult.throwOnError(CommandResult.java:110) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector._checkWriteError(DBTCPConnector.java:102) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:142) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:115) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:248) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.createIndex(DBApiLayer.java:340) ~[mongo-java-driver-2.11.4.jar:na]
    at com.mongodb.DBCollection.createIndex(DBCollection.java:485) ~[mongo-java-driver-2.11.4.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex(MongoPersistentEntityIndexCreator.java:135) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForAndCreateIndexes(MongoPersistentEntityIndexCreator.java:129) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForIndexes(MongoPersistentEntityIndexCreator.java:121) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.onApplicationEvent(MongoPersistentEntityIndexCreator.java:105) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.onApplicationEvent(MongoPersistentEntityIndexCreator.java:46) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:333) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:307) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:181) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:141) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:67) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getEntityInformation(MongoRepositoryFactory.java:141) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getTargetRepository(MongoRepositoryFactory.java:83) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:158) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:224) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:210) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:108) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
    ... 40 common frames omitted