MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como consultar o mongodb do groovy/grails?


Supondo que você tenha adicionado a dependência do driver java do mongodb na configuração de compilação e atualizado suas dependências.

Crie um serviço grails chamado MongoService.groovy e coloque o seguinte código.

Não se esqueça de importar mongodb
package com.organisation.project

import com.mongodb.*


class MongoService {
    private static MongoClient mongoClient
    private static host = "localhost"    //your host name
    private static port = 27017      //your port no.
    private static databaseName = "your-mongo-db-name"

    public static MongoClient client() {
        if(mongoClient == null){
            return new MongoClient(host,port)
        }else {
            return mongoClient
        }
    }

    public DBCollection collection(collectionName) {
        DB db = client().getDB(databaseName)
        return db.getCollection(collectionName)
    }
}

Agora podemos usar este MongoService em nossos controladores ou outros serviços.

Agora você pode fazer as seguintes coisas em seu controlador.

Não se esqueça de importar mongodb.DBCursor
package com.organisation.project



import com.mongodb.DBCursor

class YourControllerOrService {

    def mongoService    //including Mongo service 

    def method(){
        def collection = mongoService.collection("your-collection-name")
        DBCursor cursor =  collection.find()
        try{
            while(cursor.hasNext()){
                def doc = cursor.next()
                println doc     //will print raw data if its in your database for that collection
                }

         }finally {
                  cursor.close()
         }

    }
}

Para obter mais informações, consulte os documentos java do mongodb