Search code examples
scalaplayframeworkbsonreactivemongo

How to print contents of a BSONDocument


I am tyring to implement CRUD operations using reactiveMongo, and here is my find function from a tutorial online.

def findTicker(ticker: String) = {
    val query = BSONDocument("firstName" -> ticker)
    val future = collection.find(query).one

    future.onComplete {
      case Failure(e) => throw e
      case Success(result) => {
        println(result)

      }
    }
  }

However I am getting this Result:

Some(BSONDocument(<non-empty>))

How can I actually see an actual readable JSON data I am looing for:

{ "_id" : ObjectId("569914557b85c62b49634c1d"), "firstName" : "Stephane", "lastName" : "Godbillon", "age" : 29 }


Solution

  • THIS ANSWER IS BASED ON @Barry's PREVIOUS ANSWER BEFORE THE EDITS:

    I got it to work using the play-reactivemongo updated version: "org.reactivemongo" %% "play2-reactivemongo" % "0.11.9",

    Now,

    result.map { data =>
              println(Json.toJson(data))
            }
    

    returns what I want:

    {"_id":0,"name":"MongoDB","type":"database","count":1,"info":{"x":203,"y":102}}