private static List<Index> parseIndexes(Field field) {
        List<Index> indexes = null;
        Indexed indexed = field.getAnnotation(Indexed.class);
        IndexModel index = parseIndex(null, field, indexed);
        if (index != null) {
            indexes = new ArrayList<>(1);
            indexes.add(new Index(field, indexed, index));
        }
        String fieldName = field.isAnnotationPresent(Id.class)
                ? DomainFieldName.ID
                : parseFieldName(field);
        for (Field subField : field.getType()
                .getDeclaredFields()) {
            Indexed subFieldIndexed = subField.getAnnotation(Indexed.class);
            IndexModel subIndex = parseIndex(fieldName, subField, subFieldIndexed);
            if (subIndex != null) {
                if (indexes == null) {
                    indexes = new ArrayList<>(1);
                }
                indexes.add(new Index(subField, subFieldIndexed, subIndex));
            }
        }
        return indexes == null
                ? Collections.emptyList()
                : indexes;
    }
@return The indexes of the current field with its nested fields
turms-server-common/src/main/java/im/turms/server/common/storage/mongo/entity/MongoEntityFactory.java