Search code examples
javajavascriptmongodbnashorn

Can't instantiate the MongoClient class


I'm trying to use the MongoDB driver with Nashorn but I can't instantiate the MongoClient class, do you have any ideas why?

var mongodb = Packages.com.mongodb;
var MongoClient = mongodb.MongoClient;

var mongoClient = new MongoClient();

-- Running the test:

jjs -cp mongo-java-driver-2-9-3.jar mongo.js

-- result:

mongo.js:4 TypeError: [JavaPackage com.mongodb.MongoClient] is not a function

Solution

  • The Mongo documentation is out of sync with the Java repo (moved to GitHub). Prior to 2.10, the name was Mongo, not MongoClient. You need to use the 2.10.x jar from https://github.com/mongodb/mongo-java-driver/downloads or http://central.maven.org/maven2/org/mongodb/mongo-java-driver/2.10.0/.

    var mongodb = Packages.com.mongodb;
    var MongoClient = mongodb.MongoClient;
    
    var mongo = new MongoClient("localhost");
    
    print(mongo);
    

    Then:

    /Volumes/Elephant/Users/jlaskey/jjstest% jjs -cp mongo-2.10.1.jar mongodb.js
    Mongo: localhost/127.0.0.1:27017