MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB-Escape точки '.' в ключ на картата]

Когато използвате Spring Data MongoDB, получавате екземпляр на:org.springframework.data.mongodb.core.convert.MappingMongoConverter който има mapKeyDotReplacement зададено на нула по подразбиране - затова получавате изключение.

Трябва или да създадете свое собствено копие на org.springframework.data.mongodb.core.convert.MappingMongoConverter или просто модифицирайте съществуващ екземпляр, като използвате неговия метод за настройка на доставчик:

/**
 * Configure the characters dots potentially contained in a {@link Map} shall be replaced with. By default we don't do
 * any translation but rather reject a {@link Map} with keys containing dots causing the conversion for the entire
 * object to fail. If further customization of the translation is needed, have a look at
 * {@link #potentiallyEscapeMapKey(String)} as well as {@link #potentiallyUnescapeMapKey(String)}.
 * 
 * @param mapKeyDotReplacement the mapKeyDotReplacement to set
 */
public void setMapKeyDotReplacement(String mapKeyDotReplacement) {
    this.mapKeyDotReplacement = mapKeyDotReplacement;
}

В MongoDB точката винаги се третира като специален знак, така че избягването й най-вероятно ще ви спести друго главоболие в бъдеще.

РЕДАКТИРАНЕ:За да замените MappingMongoConverter по подразбиране добавете следната декларация на bean:

  @Bean
  public MappingMongoConverter mongoConverter(MongoDbFactory mongoFactory) throws Exception {
    DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoFactory);
    MappingMongoConverter mongoConverter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
    mongoConverter.setMapKeyDotReplacement(".");

    return mongoConverter;
  }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB с поддокументи за ограничение на Mongoose

  2. MongoDB:къде е границата между малко и много?

  3. apollostack/graphql-server - как да получите полетата, поискани в заявка от преобразувателя

  4. MongoDb Select Query Проблем с регулярен израз (започва с малко и завършва с малко)

  5. Ръководство за разработчици за комплекти реплики на MongoDB