¿Es posible usar GroupProperty con mongodb y grieles? -- mongodb campo con grails camp Relacionados El problema

Is it possible to use groupProperty with mongoDB and Grails?


1
vote

problema

Español

Estoy tratando de usar GroupProperty con MongoDB en un proyecto GRILS. Estoy en la versión 2.3.2 de Grails y la versión 3.0.1 del complemento MongoDB.

Mis criterios se ve así:

  def groupedScenarios = Scenario.withCriteria {     eq 'scenarioVersion', {         projections {             max 'scenarioVersion'         }     }     projections {         groupProperty 'scenarioNumber'     } }   

Estoy tratando de encontrar los escenarios donde la escenario es más alta para un escenario dado. Ni siquiera sé si mis criterios están correctos, por lo tanto, mi explicación de mi objetivo final.

El error devuelto es

  No signature of method: <my service>.groupProperty() is applicable for argument types: (java.lang.String) values: [scenarioNumber] Possible solutions: getProperty(java.lang.String), hasProperty(java.lang.String). Stacktrace follows: Message: No signature of method: <my service>.groupProperty() is applicable for argument types: (java.lang.String) values: [scenarioNumber] Possible solutions: getProperty(java.lang.String), hasProperty(java.lang.String)   

Se ha sugerido algunas búsqueda de la búsqueda en GroupProperty, pero los documentos para la versión 6 del complemento sugieren que es ahora.

¿Estoy haciendo algo malo con mis criterios? Si es un problema de la versión de complemento, ¿alguien sabe cuando GroupProperty se hizo soportado por el complemento de MongoDB de Grieles?

Realmente he luchado para encontrar la documentación sobre las versiones anteriores de los complementos de Grails, ¿estoy perdiendo algo? La página de complemento en https://www.grails.org/plugin/mongodb no Permítame mirar viejos lanzamientos hasta donde puedo decir. Realmente frustrante.

Original en ingles

I'm trying to use groupProperty with MongoDB in a Grails project. I'm on version 2.3.2 of Grails and version 3.0.1 of the MongoDB plugin.

My criteria looks like this:

def groupedScenarios = Scenario.withCriteria {     eq 'scenarioVersion', {         projections {             max 'scenarioVersion'         }     }     projections {         groupProperty 'scenarioNumber'     } } 

I'm trying to find the scenarios where the scenarioVersion is highest for a given scenarioNumber. I don't even know if my criteria are correct yet, hence my explanation of my end goal.

The error returned is

No signature of method: <my service>.groupProperty() is applicable for argument types: (java.lang.String) values: [scenarioNumber] Possible solutions: getProperty(java.lang.String), hasProperty(java.lang.String). Stacktrace follows: Message: No signature of method: <my service>.groupProperty() is applicable for argument types: (java.lang.String) values: [scenarioNumber] Possible solutions: getProperty(java.lang.String), hasProperty(java.lang.String) 

Some searching has suggested groupProperty wasn't supported, but the docs for version 6 of the plugin suggest it is now.

Am I doing anything wrong with my criteria? If it's a plugin version issue, does anyone know when groupProperty became supported by the Grails MongoDB plugin?

I've really struggled to find documentation about previous versions of Grails plugins - am I missing something? The plugin page at https://www.grails.org/plugin/mongodb doesn't allow me to look at old releases as far as I can tell. Really frustrating.

     

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Debe estar usando la sintaxis de consulta "Nativa" de Mongo para tales tareas.

Desde mi experiencia, Gorm para Mongo está bien para que los fundadores dinámicos simples que trabajan de la misma manera en cualquier DB, pero si necesita disparar una consulta específica de DB, debe ir nativo, como GORM criteria6 < / Código> es demasiado sql sesgado.

Entonces, su consulta podría parecer algo así:

  def groupedScenarios = Scenario.collection.aggregate(   [ $group:[ _id:'_id', maxNumber:[ $max:scenarioNumber ] ] ] ).results()   

No soy un experto en mongo, por lo que debe ensamblar una consulta adecuada, según Mongo Ref DOC

 

You should be using "mongo's native" query syntax for such tasks.

From my experience GORM for mongo is fine for simple dynamic-finders which work the same way on any DB out there, but if you need to fire a DB-specific query you have to go native, as GORM criteria is too SQL-biased.

So, you query could look something like:

def groupedScenarios = Scenario.collection.aggregate(   [ $group:[ _id:'_id', maxNumber:[ $max:scenarioNumber ] ] ] ).results() 

I'm not a mongo-expert, so you have to assemble a proper query yourself, as per mongo ref doc

 
 
 
 

Relacionados problema

0  ¿Cómo verificar si el objeto está dentro de la colección en el objeto de dominio?  ( How to check if object is within collection on domain object ) 
En las solicitudes a mi solicitud, a menudo obtengo identificaciones de los objetos, que deben estar asociados. Sin embargo, tengo que realizar un cheque para...

1  Grieles en las instalaciones  ( Grails on premises ) 
Hemos desarrollado una aplicación usando Grails, destinada a ser alojada en nuestro servidor público y ahora tenemos algunos clientes que desean instalarlo en...

0  Cargar datos de CSV en GRILS  ( Load data from csv in grails ) 
Tengo un archivo CSV con una lista de "Nombres de usuario prohibidos", tiene unos 10,000 nombres. Básicamente, quiero verificar esta lista sobre el registro d...

9  Groovy + OSGI o GRILS?  ( Groovy osgi or grails ) 
He estado aprendiendo OSGI y también un poco sobre Groovy recientemente, pero soy muy nuevo en ambos. Sé que Groovy es parte del marco de grieles y que Griele...

3  Consultas de carga ansiosas con Gorm / Hibernate  ( Eager loading queries with gorm hibernate ) 
My Grails App tiene los siguientes objetos de dominio @property (nonatomic, readwrite) NSString *rootCategory; 0 MI DB tiene 7 @property (nonatomic, re...

1  MD5 y sal  ( Md5 and salt ) 
grieles 1.1 En adelante tiene 'EncodeasMD5' disponible en cadenas: ¿hay una manera de proporcionar una sal para la función? Uso típico: ${myString.encode...

6  Cómo crear javadoc de un proyecto de grieles  ( How to create javadoc of a grails project ) 
¡Hay una manera de crear Javadoc para un proyecto de GRAWS? (¿Tiene sentido?) ...

2  ¿Qué técnica de modelado / herramienta / diagrama recomendaría para una aplicación de rieles / grieles? [cerrado]  ( What modeling technique tool diagram would you recommend for a rails grails appl ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

5  Uso de propiedades transitorias en Finderby o Methods Methods  ( Using transient property in findby or listorderby methods ) 
Tengo una clase de dominio usando algunas propiedades transitorias foo. Ahora quiero usar listorderbyfoo en esta propiedad, pero recibo el error "No se pudo r...

2  Grieles problema de seguridad y optimización de motores de búsqueda  ( Grails security problem and search engine optimization ) 
Estoy tratando de crear una lógica de control que depende de la página GSP actual para llamar a una acción, ¿hay una etiqueta o un método de sesión que pueda ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos