public <T> MongoCollection<T> nonEntityCollection(String collectionName, Class<T> valueType) {
        return getCollection(collectionName, valueType);
    }
@Test
    void testMongoIgnore() {
        // @MongoIgnore should prevent a property from being written to Mongo. But if it's returned from Mongo,
        // e.g. because it was calculated by an aggregation, it should be populated in the returned object.
        final MongoCollection<IgnoreTest> collection = collections.nonEntityCollection("ignoreTest", IgnoreTest.class);
        collection.insertOne(new IgnoreTest("I should be present", "I should be gone"));
        assertThat(collection.find().first()).isEqualTo(new IgnoreTest("I should be present", null));

        final MongoCollection<Document> rawCollection = collections.nonEntityCollection("alsoIgnoreTest", Document.class);
        rawCollection.insertOne(new Document(Map.of(
                "ignore_me_not", "I should be present",
                "ignore_me", "I sneaked in")));

        final MongoCollection<IgnoreTest> collection2 = collections.nonEntityCollection("alsoIgnoreTest", IgnoreTest.class);
        assertThat(collection2.find().first()).isEqualTo(new IgnoreTest("I should be present", "I sneaked in"));
    }