Search in sources :

Example 6 with IndexInfo

use of org.springframework.data.mongodb.core.index.IndexInfo in project spring-data-mongodb by spring-projects.

the class DefaultReactiveIndexOperationsTests method shouldFavorExplicitMappingHintViaClass.

// DATAMONGO-1682
@Test
public void shouldFavorExplicitMappingHintViaClass() {
    assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO));
    IndexDefinition id = new Index().named("partial-with-inheritance").on("k3y", Direction.ASC).partial(of(where("age").gte(10)));
    indexOps = new DefaultReactiveIndexOperations(template, this.template.getCollectionName(DefaultIndexOperationsIntegrationTestsSample.class), new QueryMapper(template.getConverter()), MappingToSameCollection.class);
    StepVerifier.create(indexOps.ensureIndex(id)).expectNextCount(1).verifyComplete();
    // 
    StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-inheritance"))).consumeNextWith(indexInfo -> {
        assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }");
    }).verifyComplete();
}
Also used : Document(org.bson.Document) StepVerifier(reactor.test.StepVerifier) AbstractReactiveMongoConfiguration(org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration) RunWith(org.junit.runner.RunWith) Autowired(org.springframework.beans.factory.annotation.Autowired) MongoClients(com.mongodb.reactivestreams.client.MongoClients) Collation(org.springframework.data.mongodb.core.query.Collation) MongoCollection(com.mongodb.reactivestreams.client.MongoCollection) Index(org.springframework.data.mongodb.core.index.Index) MongoClient(com.mongodb.reactivestreams.client.MongoClient) SpringJUnit4ClassRunner(org.springframework.test.context.junit4.SpringJUnit4ClassRunner) Assertions(org.assertj.core.api.Assertions) Version(org.springframework.data.util.Version) Assume(org.junit.Assume) Direction(org.springframework.data.domain.Sort.Direction) CaseFirst(org.springframework.data.mongodb.core.query.Collation.CaseFirst) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) Before(org.junit.Before) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) Predicate(java.util.function.Predicate) Test(org.junit.Test) Criteria(org.springframework.data.mongodb.core.query.Criteria) Field(org.springframework.data.mongodb.core.mapping.Field) Configuration(org.springframework.context.annotation.Configuration) PartialIndexFilter(org.springframework.data.mongodb.core.index.PartialIndexFilter) ContextConfiguration(org.springframework.test.context.ContextConfiguration) IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) Index(org.springframework.data.mongodb.core.index.Index) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) Test(org.junit.Test)

Example 7 with IndexInfo

use of org.springframework.data.mongodb.core.index.IndexInfo in project spring-data-mongodb by spring-projects.

the class GeoSpatial2DSphereTests method indexInfoIsCorrect.

// DATAMONGO-360
@Test
public void indexInfoIsCorrect() {
    IndexOperations operations = template.indexOps(Venue.class);
    List<IndexInfo> indexInfo = operations.getIndexInfo();
    assertThat(indexInfo.size(), is(2));
    List<IndexField> fields = indexInfo.get(0).getIndexFields();
    assertThat(fields.size(), is(1));
    assertThat(fields, hasItem(IndexField.create("_id", Direction.ASC)));
    fields = indexInfo.get(1).getIndexFields();
    assertThat(fields.size(), is(1));
    assertThat(fields, hasItem(IndexField.geo("location")));
}
Also used : IndexOperations(org.springframework.data.mongodb.core.index.IndexOperations) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) IndexField(org.springframework.data.mongodb.core.index.IndexField) Test(org.junit.Test)

Example 8 with IndexInfo

use of org.springframework.data.mongodb.core.index.IndexInfo in project spring-data-mongodb by spring-projects.

the class GeoSpatial2DTests method indexInfoIsCorrect.

// DATAMONGO-360
@Test
public void indexInfoIsCorrect() {
    IndexOperations operations = template.indexOps(Venue.class);
    List<IndexInfo> indexInfo = operations.getIndexInfo();
    assertThat(indexInfo.size(), is(2));
    List<IndexField> fields = indexInfo.get(0).getIndexFields();
    assertThat(fields.size(), is(1));
    assertThat(fields, hasItem(IndexField.create("_id", Direction.ASC)));
    fields = indexInfo.get(1).getIndexFields();
    assertThat(fields.size(), is(1));
    assertThat(fields, hasItem(IndexField.geo("location")));
}
Also used : IndexOperations(org.springframework.data.mongodb.core.index.IndexOperations) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) IndexField(org.springframework.data.mongodb.core.index.IndexField) Test(org.junit.Test)

Example 9 with IndexInfo

use of org.springframework.data.mongodb.core.index.IndexInfo in project spring-data-mongodb by spring-projects.

the class DefaultIndexOperationsIntegrationTests method shouldApplyPartialDBOFilterCorrectly.

// DATAMONGO-1467
@Test
public void shouldApplyPartialDBOFilterCorrectly() {
    assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
    IndexDefinition id = new Index().named("partial-with-dbo").on("k3y", Direction.ASC).partial(of(new org.bson.Document("qty", new org.bson.Document("$gte", 10))));
    indexOps.ensureIndex(id);
    IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-dbo");
    assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }");
}
Also used : Document(org.bson.Document) IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) Index(org.springframework.data.mongodb.core.index.Index) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) Document(org.bson.Document) Test(org.junit.Test)

Example 10 with IndexInfo

use of org.springframework.data.mongodb.core.index.IndexInfo in project spring-data-mongodb by spring-projects.

the class DefaultIndexOperationsIntegrationTests method shouldFavorExplicitMappingHintViaClass.

// DATAMONGO-1467
@Test
public void shouldFavorExplicitMappingHintViaClass() {
    assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
    IndexDefinition id = new Index().named("partial-with-inheritance").on("k3y", Direction.ASC).partial(of(where("age").gte(10)));
    indexOps = new DefaultIndexOperations(template.getMongoDbFactory(), this.template.getCollectionName(DefaultIndexOperationsIntegrationTestsSample.class), new QueryMapper(template.getConverter()), MappingToSameCollection.class);
    indexOps.ensureIndex(id);
    IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-inheritance");
    assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }");
}
Also used : IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) Index(org.springframework.data.mongodb.core.index.Index) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)16 IndexInfo (org.springframework.data.mongodb.core.index.IndexInfo)16 Index (org.springframework.data.mongodb.core.index.Index)11 IndexDefinition (org.springframework.data.mongodb.core.index.IndexDefinition)10 Document (org.bson.Document)7 QueryMapper (org.springframework.data.mongodb.core.convert.QueryMapper)7 MongoClient (com.mongodb.reactivestreams.client.MongoClient)5 MongoClients (com.mongodb.reactivestreams.client.MongoClients)5 MongoCollection (com.mongodb.reactivestreams.client.MongoCollection)5 Predicate (java.util.function.Predicate)5 Assertions (org.assertj.core.api.Assertions)5 Assume (org.junit.Assume)5 Before (org.junit.Before)5 RunWith (org.junit.runner.RunWith)5 Autowired (org.springframework.beans.factory.annotation.Autowired)5 Configuration (org.springframework.context.annotation.Configuration)5 Direction (org.springframework.data.domain.Sort.Direction)5 AbstractReactiveMongoConfiguration (org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration)5 PartialIndexFilter (org.springframework.data.mongodb.core.index.PartialIndexFilter)5 Field (org.springframework.data.mongodb.core.mapping.Field)5