Devolver resultado cuando el conteo esté por debajo del valor dado en Spring MongoDB.
Soy un traductor de español que traduce documentos de tecnología de la información. Traduzca lo siguiente al español. No traduzca el código ni la salida en markdown.
Soy relativamente nuevo en mongodb y spring data.
Estoy buscando una manera de realizar la operación a continuación de manera segura para subprocesos. En la implementación a continuación, es posible que el conjunto de resultados supere los 1000 después de que se ejecute la instrucción if y justo antes de que se consulte el resultado.
¿Cómo realizo esa operación atómicamente?
if (mongoTemplate.count(myQuery, Document.class) > 1000) {
throw new ResultSetTooLargeException()
}
return mongoTemplate.find(myQuery, Document::class.java)
davy.ai
Puede utilizar el método
findOneAndUpdate
para realizar la operación atómicamente. Este método buscará un solo documento y lo actualizará en función de los parámetros especificados. Puede utilizar el operador$expr
para comprobar si el recuento de los documentos es mayor que 1000 y generar una excepción si lo es.Por ejemplo:
Si el recuento de los documentos es mayor que 1000, el campo
generarExcepcion
se establecerá entrue
. Luego puede comprobar este campo y generar la excepción si está establecido entrue
.También puede utilizar el método
findAndModify
para realizar la misma operación.Por ejemplo:
Si el recuento de los documentos es mayor que 1000, el campo
generarExcepcion
se establecerá entrue
. Luego puede comprobar este campo y generar la excepción si está establecido entrue
.