MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come interrogare mongodb da groovy/grails?

Supponendo che tu abbia aggiunto la dipendenza del driver java mongodb nella configurazione di build e aggiornato le tue dipendenze.

Crea un servizio grail denominato MongoService.groovy e inserisci il seguente codice.

Non dimenticare di importare 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)
    }
}

Ora possiamo utilizzare questo MongoService nei nostri controller o altri servizi.

Ora puoi fare le seguenti cose nel tuo controller.

Non dimenticare di importare 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()
         }

    }
}

Per ulteriori informazioni Fare riferimento a mongodb java docs