Me gustaría correr una masiva operación de eliminación en una lista de documentos en MongoDB que han sido seleccionados por el usuario en la interfaz de usuario por lo que necesito para construir dinámicamente una consulta que tiene el siguiente aspecto (el o la cláusula se expande por cada documento seleccionado):

{
    $and: [
        {
            "contentType": "application/vnd.sometype"
        },
        {
            $or: [
                {
                    "metadata.name": "someName",
                    "metadata.version": "someVersion"
                },
                {
                    "metadata.name": "someOtherName",
                    "metadata.version": "someOtherVersion"
                }
            ]
        }
    ]
},
Fields: null,
Sort: null

Justo ahora estoy usando la concatenación de cadenas para lograr esto.

Es posible construir esta consulta con la Primavera de Datos MongoDB Criterios Generador (org.springframework.de datos.mongodb.núcleo.consulta.Criterios)?

InformationsquelleAutor Jamie Cramb | 2014-07-03

1 Comentario

  1. 10

    No este trabajo para usted?

    Criteria criteria = Criteria.where("contentType").is("application/vnd.sometype");
    
    List<Criteria> docCriterias = new ArrayList<Criteria>(docs.size());
    
    for (Document doc: docs) {
        docCriterias.add(Criteria.where("metadata.name").is(doc.getName())
                                   .and("metadata.version").is(doc.getVersion()));
    }
    
    criteria = criteria.orOperator(docCriterias.toArray(new Criteria[docs.size()]));

    ?

    • sí, este funciona perfectamente, gracias!
    • Bilan criterios.orOperator(docCriterias.toArray(nuevos Criterios[docs.size()])); im que consigue problema, mientras que la conversión de mi lista de Criterios para una Matriz de sus sigo diciendo que orOperator no se define por Criterios[]? puede usted plese ayuda?
    • Por favor, comprueba la Primavera de Datos MongoDB versión. Trate de usar la última versión de uno.
    • Estoy usando 1.5.0.LIBERACIÓN
    • su sigan diciendo que El método orOperator(Criterios…) en el tipo de Criterio no es aplicable para los argumentos (Criterios[])
    • No utilizar org.hibernate.Criteria por error?
    • Bueno, feria, por favor, el StackTrace
    • Permítanos continuar esta discusión en el chat.
    • ¿Qué va a ser del orden de ejecución de múltiples criterios ?
    • Cómo imprimir este criterio? Quiero ver la consulta real.
    • Ver Criteria.getCriteriaObject().toString(), donde la última hace exactamente esto: JSON.serialize(this);

Dejar respuesta

Please enter your comment!
Please enter your name here