Operar la base de datos mongodb en springboot (cómo usar los criterios de actualización de consultas)

Tabla de contenido

Introducir dependencias

Primero cree una clase de entidad Usuario:

Cree una clase UserDao para realizar operaciones de adición, eliminación, modificación y consulta en MongoDB:

Finalmente, cree una clase UserController para probar las operaciones de adición, eliminación, modificación y consulta de MongoDB:

Uso de criterios de actualización de consultas

Métodos en consulta

addCriteria(Criterios de criterios)

con(ordenar)

con(Paginable paginable)

campos()

incluir (cadena... campos)

excluir (cadena... campos)

límite (límite int)

saltar(int saltar)

contar()

uno()

lista()

existe()

agregado (agregación agregada, tipo de resultado de clase)

uso de consulta

Métodos en actualización

set (clave de cadena, valor del objeto)

desarmado (clave de cadena)

inc(Clave de cadena, valor numérico)

push(Clave de cadena, valor del objeto)

addToSet (clave de cadena, valor del objeto)

pop (tecla de cadena, posición de posición)

pull (clave de cadena, valor del objeto)

pullAll (clave de cadena, valores de objeto [])

cambiar nombre(String nombre antiguo, String nombre nuevo)

fecha actual (clave de cadena)

max(Clave de cadena, valor numérico)

min(Clave de cadena, valor numérico)

mul (clave de cadena, valor numérico)

addToSetEach(Clave de cadena, Objeto... valores)

pushEach(Clave de cadena, Objeto... valores)

bit a bit (clave de cadena, bit a bit, valor int)

uso de actualización

Uso de criterios


Introducir dependencias

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
 

Ejemplo de uso  mongoTemplate de MongoDB para agregar, eliminar, modificar y consultar:

  1. Primero crea una clase de entidad  User:

@Document(collection = "users")
public class User {
    @Id
    private String id;
    private String name;
    private Integer age;
    // getters and setters
}

Utilice  @Document anotaciones para marcar la clase de entidad correspondiente a la  users colección de MongoDB y utilice  @Id anotaciones para identificar  id el campo como clave principal.

  1. Cree una  UserDao clase para realizar operaciones de adición, eliminación, modificación y consulta en MongoDB:

@Repository
public class UserDao {
    @Autowired
    private MongoTemplate mongoTemplate;
    
    public User addUser(User user) {
        mongoTemplate.save(user);
        return user;
    }
    
    public void updateUser(User user) {
        Query query = new Query(Criteria.where("id").is(user.getId()));
        Update update = new Update().set("name", user.getName())
                                    .set("age", user.getAge());
        mongoTemplate.updateFirst(query, update, User.class);
    }
    
    public User findUserById(String id) {
        Query query = new Query(Criteria.where("id").is(id));
        return mongoTemplate.findOne(query, User.class);
    }
    
    public List<User> findUsersByName(String name) {
        Query query = new Query(Criteria.where("name").is(name));
        return mongoTemplate.find(query, User.class);
    }

    public void deleteUserById(String id) {
        Query query = new Query(Criteria.where("id").is(id));
        mongoTemplate.remove(query, User.class);
    }}

 Spring administrará  el uso  @Repository de anotaciones  y  se inyectará el objeto.UserDaomongoTemplate

addUser Los métodos se utilizan para agregar usuarios y  mongoTemplate.save los métodos se utilizan para guardar objetos en MongoDB.

updateUser Los métodos se utilizan para modificar la información del usuario y  mongoTemplate.updateFirst los métodos se utilizan para realizar operaciones de actualización. Query Una clase representa una condición de consulta, Criteria una clase representa una colección de condiciones de consulta y Update una clase representa una colección de operaciones de actualización.

findUserById El método se utiliza para consultar información del usuario según la ID del usuario y  mongoTemplate.findOne el método se utiliza para consultar un solo objeto.

findUsersByName El método se utiliza para consultar la lista de usuarios calificados según el nombre de usuario y  mongoTemplate.find el método se utiliza para consultar la lista de objetos.

deleteUserById El método se utiliza para eliminar información del usuario según la ID del usuario y  mongoTemplate.remove el método se utiliza para eliminar objetos.

  1. Finalmente, cree una  UserController clase para probar las operaciones de adición, eliminación, modificación y consulta de MongoDB:

@RestController
public class UserController {
    @Autowired
    private UserDao userDao;
    
    @PostMapping("/user")
    public User addUser(@RequestBody User user) {
        return userDao.addUser(user);
    }
    
    @PutMapping("/user")
    public void updateUser(@RequestBody User user) {
        userDao.updateUser(user);
    }
    
    @GetMapping("/user/{id}")
    public User findUserById(@PathVariable("id") String id) {
        return userDao.findUserById(id);
    }
    
    @GetMapping("/users/{name}")
    public List<User> findUsersByName(@PathVariable("name") String name) {
        return userDao.findUsersByName(name);
    }

    @DeleteMapping("/user/{id}")
    public void deleteUserById(@PathVariable("id") String id) {
        userDao.deleteUserById(id);
    }
}

 Spring administrará  el uso  @RestController de anotaciones  y  se inyectará el objeto.UserControllerUserDao

addUser El método se utiliza para agregar información del usuario y utilizar  @PostMapping anotaciones para marcar solicitudes HTTP POST.

updateUser El método se utiliza para modificar la información del usuario y utilizar  @PutMapping anotaciones para marcar solicitudes HTTP PUT.

findUserById El método se utiliza para consultar información del usuario según la ID del usuario y utiliza  @GetMapping anotaciones para marcar las solicitudes HTTP GET.

findUsersByName El método se utiliza para consultar la lista de usuarios calificados según el nombre de usuario y utiliza  @GetMapping anotaciones para marcar la solicitud HTTP GET.

deleteUserById El método se utiliza para eliminar información del usuario según la ID del usuario y utiliza  @DeleteMapping anotaciones para marcar las solicitudes HTTP DELETE.

Lo anterior es  mongoTemplate un ejemplo del uso de MongoDB para agregar, eliminar, modificar y consultar.

Uso de criterios de actualización de consultas

Queryy Update son  Criteria tres conceptos importantes en Spring Data MongoDB, que se utilizan para realizar consultas complejas y operaciones de actualización de MongoDB. Su uso se presenta a continuación:

Métodos en consulta

addCriteria(Criteria criteria)

Agregar condiciones de consulta. Los objetos se pueden utilizar  Criteria para crear condiciones de consulta complejas.

with(Sort sort)

Establecer reglas de clasificación. Los objetos se pueden utilizar  Sort para crear intercalaciones complejas.

with(Pageable pageable)

Establecer reglas de paginación. Puede utilizar  PageRequest objetos para crear reglas de paginación.

fields()

Establezca los campos de consulta. Puede utilizar  Fields objetos para especificar los campos que deben devolverse. Si  fields() no se llama al método, se devuelven todos los campos.

include(String... fields)

Establezca los campos que se devolverán. Mismo  fields() método.

exclude(String... fields)

Establezca campos que no necesitan ser devueltos. Mismo  fields() método.

limit(int limit)

Establezca el número máximo de resultados de la consulta.

skip(int skip)

Establezca el desplazamiento de los resultados de la consulta.

count()

Devuelve el número de resultados de la consulta.

one()

Devuelve el primer registro de resultados de la consulta.

list()

Devuelve todos los registros de los resultados de la consulta.

exists()

Determine si el resultado de la consulta existe.

aggregate(Aggregation aggregation, Class<T> resultType)

Realizar operaciones de agregación. Aggregation Las operaciones de agregación se pueden construir utilizando  objetos. resultType Especifica el tipo de resultado devuelto.

uso de consulta

Query Utilice  Criteria objetos para crear condiciones de consulta y establezca parámetros como clasificación y paginación. Por ejemplo:

Query query = new Query(Criteria.where("name").is("Tom").and("age").gte(20));
query.with(Sort.by(Sort.Direction.DESC, "age"));
query.skip(0).limit(10);

El código anterior indica consultar a los usuarios cuyo nombre es "Tom" y cuya edad es mayor o igual a 20 años, ordenarlos en orden descendente por edad y devolver resultados del 1 al 10.

Query También se admiten llamadas encadenadas:

Query query = new Query()
    .addCriteria(Criteria.where("name").is("Tom").and("age").gte(20))
    .with(Sort.by(Sort.Direction.DESC, "age"))
    .skip(0).limit(10);

Métodos en actualización

set(String key, Object value)

Establezca el valor del campo.

unset(String key)

Eliminar campos.

inc(String key, Number value)

Incrementa el valor de un campo de tipo numérico.

push(String key, Object value)

Agregue elementos a un campo de matriz.

addToSet(String key, Object value)

Agregar elementos a un campo de colección.

pop(String key, Position position)

Eliminar elementos de un campo de matriz.

pull(String key, Object value)

Eliminar elementos de una matriz o campo de colección.

pullAll(String key, Object[] values)

Elimine varios elementos de una matriz o campo de colección.

rename(String oldName, String newName)

Cambie el nombre del campo.

currentDate(String key)

Establezca el valor del campo en la fecha actual.

max(String key, Number value)

Si el valor del campo es menor que el valor especificado, actualice el valor del campo.

min(String key, Number value)

Si el valor del campo es mayor que el valor especificado, el valor del campo se actualiza.

mul(String key, Number value)

Multiplica el valor de un campo numérico por el valor especificado.

addToSetEach(String key, Object... values)

Agregue varios elementos a un campo de colección.

pushEach(String key, Object... values)

Agregue varios elementos a un campo de matriz.

bitwise(String key, Bitwise bitwise, int value)

Realizar operaciones bit a bit.

Los anteriores son   los métodos comúnmente utilizados Query y  con la ayuda de estos métodos, se pueden construir operaciones complejas de consulta y actualización.Update

uso de actualización

Update Se utiliza para crear operaciones de actualización, donde se pueden establecer campos y condiciones actualizados. Por ejemplo:

Update update = new Update().set("name", "Jim").inc("age", 1);

El código anterior suma 1 a la edad del usuario llamado "Jim".

Update También se admiten llamadas encadenadas:

Update update = new Update()
    .set("name", "Jim")
    .inc("age", 1);

Uso de criterios

Criteria Se utiliza para crear condiciones de consulta y admite múltiples operadores, como:

Criteria criteria = Criteria.where("name").is("Tom").and("age").gte(20);

El código anterior indica consultar a los usuarios cuyo nombre es "Tom" y cuya edad es mayor o igual a 20 años.

Criteria También se admiten llamadas encadenadas:

Criteria criteria = new Criteria()
    .andOperator(
        Criteria.where("name").is("Tom"),
        Criteria.where("age").gte(20)
    );

Además  andOperator, también admite  operadores  lógicos como orOperator, etc.notOperatornorOperator

Además, Criteria también se admiten operadores de comparación, como por ejemplo:

Criteria.where("age").gt(18)   // 大于
Criteria.where("age").gte(18)  // 大于等于
Criteria.where("age").lt(18)   // 小于
Criteria.where("age").lte(18)  // 小于等于
Criteria.where("age").is(18)   // 等于
Criteria.where("age").ne(18)   // 不等于
Criteria.where("name").in("Tom", "Jim")  // 在集合中
Criteria.where("name").nin("Tom", "Jim") // 不在集合中
Criteria.where("name").regex("pattern") // 正则匹配

Lo anterior es  el uso Queryde Update y  Criteria . Con la ayuda de estos objetos, se pueden realizar operaciones de consulta y actualización de MongoDB más flexibles y eficientes.

Supongo que te gusta

Origin blog.csdn.net/qq_56921846/article/details/132737020
Recomendado
Clasificación