Skip to content
广告❤️成为赞助商

No Entity Class Scenario

No Entity Class Scenario

Considering cases where the structure is too complex and there is no entity class, what should we do? Use:
MongoPlusMapMapper BaseMapper

  • Operations and service inheritance are exactly the same
  • Simply inject MongoPlusMapMapper BaseMapper to use
  • Returns a Map structure

Here we have a User collection with the following structure:

idnameageemail
1Jone18test1@mongoplus.com
2Jack20test2@mongoplus.com
3Tom28test3@mongoplus.com
4Sandy21test4@mongoplus.com
5Billie24test5@mongoplus.com

Question

If we use MongoPlusOperate to implement CRUD for this collection, what should we do?

Initialize Project

Create an empty Spring Boot project.

TIP

You can use Spring Initializer to quickly initialize a Spring Boot project.

Add Dependencies

Introduce the Spring Boot Starter parent project:

xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6+ version</version>
    <relativePath/>
</parent>

Add the dependencies spring-boot-starter, spring-boot-starter-test, mongo-plus-boot-starter:

xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.gitee.anwena</groupId>
        <artifactId>mongo-plus-boot-starter</artifactId>
        <version>latest version</version>
    </dependency>
</dependencies>

Configuration

Add MongoPlus related configuration in the application.yml file:

yaml
# DataSource Config
mongo-plus:
  data:
    mongodb:
      host: 127.0.0.1   # IP
      port: 27017       # Port
      database: test    # Database name
      username: test    # Username, optional
      password: test    # Password, optional
      authenticationDatabase: admin     # Authentication database
      connectTimeoutMS: 50000   # Maximum time (ms) to wait for a connection before timeout

Coding

Add a test class for functionality testing:

java
@SpringBootTest
public class SampleTest {

    @Autowired
    //private MongoPlusMapMapper mongoPlusMapMapper;
    private BaseMapper baseMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        // List<Map<String,Object>> userList = mongoPlusMapMapper.list("user");
        List<Map<String, Object>> userList = baseMapper.list("asd", new TypeReference<Map<String, Object>>() {});
        userList.forEach(System.out::println);
    }

}

Console output:

log
User(id=1, name=Jone, age=18, email=test1@mongoplus.com)
User(id=2, name=Jack, age=20, email=test2@mongoplus.com)
User(id=3, name=Tom, age=28, email=test3@mongoplus.com)
User(id=4, name=Sandy, age=21, email=test4@mongoplus.com)
User(id=5, name=Billie, age=24, email=test5@mongoplus.com)

TIP

For the complete code example, please visit: Spring Boot Example

Summary

With just a few simple steps, we have implemented CRUD functionality for the User collection!

From the steps above, we can see that integrating Mongo-Plus is very simple, requiring only the introduction of the starter project.

But the power of Mongo-Plus goes far beyond this. Want to learn more about the powerful features of Mongo-Plus? Keep reading!