Установить индекс для встроенного документа в Mongodb

2

Я использую mongodb + springdata. Мой документ выглядит так:

@Entity
@Document(collection="MyCollection")
public final class InfoItemMongoDBDocument {

    @Id
    private ObjectId id;

    @Column
    private String name;

    @Column
    @Indexed
    private int isFixed = 0;


    @Column
    private List<DocumentCopies> copy;

Где DocumentCopies - POJO. Можно ли установить дополнительный индекс в одном из полей DocumentCopies, используя аннотации Spring.

Большое спасибо!

Теги:
spring
spring-data

1 ответ

4
Лучший ответ

Да, вам нужна форма "точка ноты", ссылающаяся на поле в вашем другом POJO, которое должно быть проиндексировано:

@Document(collection="MyCollection")
@CompoundIndexes({
    @CompoundIndex( name="copy.childField", def="{'copy.childField': 1}")
})

Где "childField" - это имя вашего поля/свойства, которое индексируется.

  • 0
    Он не работает, он создает индекс для копии поля с именем copy.mychieldfieldname :(
  • 0
    @EK. он должен создавать индекс в вашей сопоставленной коллекции родительских объектов, который называется «copy.childField» и является фактическим именем этого поля. Это должно быть то, что вы хотите. Вы, конечно, используете имя фактического поля, на которое вы ссылаетесь
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню