2015-02-10 579 views
2
com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" , "createdCollectionAutomatically" : true , "numIndexesBefore" : 1 , "ok" : 0.0 , "errmsg" : "namespace name generated from index name \"NDS.ABCD_pre_import.$importabilityEvaluations.perNameResults.straightImportResults.resultPolContent_NOT_IN_CURRENT_USE.officialPolResultNameContentId\" is too long (127 byte max)" , "code" : 67} 
    at com.mongodb.CommandResult.getException(CommandResult.java:76) 
    at com.mongodb.CommandResult.throwOnError(CommandResult.java:131) 
    at com.mongodb.DBCollectionImpl.createIndex(DBCollectionImpl.java:362) 
    at com.mongodb.DBCollection.createIndex(DBCollection.java:563) 
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex(MongoPersistentEntityIndexCreator.java:136) 
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForAndCreateIndexes(MongoPersistentEntityIndexCreator.java:129) 
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForIndexes(MongoPersistentEntityIndexCreator.java:121) 
    at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.onApplicationEvent(MongoPersistentEntityIndexCreator.java:105) 
    at org.springframework.data.mongodb.core.index.MongoMappingEventPublisher.publishEvent(MongoMappingEventPublisher.java:60) 
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:306) 
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:180) 
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:140) 
    at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:67) 
    at org.springframework.data.mongodb.core.MongoTemplate.determineCollectionName(MongoTemplate.java:1881) 
    at org.springframework.data.mongodb.core.MongoTemplate.determineEntityCollectionName(MongoTemplate.java:1868) 
    at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:825) 
+0

或者你可以缩短名字......有没有真正的理由使用一个全长度小说作为一个关键的名字。 – 2015-02-10 20:25:32

回答

0

您不能禁用索引,因为MongoDB将始终为_id创建索引。缩短您的收藏名称,而不是 - 为您节省一些打字太

8

您可以通过索引名作为参数传递给ensureIndex:

db.collection.ensureIndex({"foo": 1, "bar": 1}, {name:"myIndex1"}); 
+0

究竟在寻找什么谢谢:) – 2016-07-26 13:56:16

+0

对于那些遇到过与Mongoose(Node.js ODM for MongoDB)相关的问题,这个参数也适用;-) Thx – rphonika 2017-10-04 09:51:50

+0

@ abdul-hameed随时接受答案:) – dji 2017-10-18 08:32:25

相关问题