Java连接mongodb,Java运⾏mongodbjs脚本
java创建mongodb客户端,并且根据⽤户登陆信息,获取相应的mongodb的database。对于创建mongodb的连接客户端,对于这个创建ibatis中也有此类⽤法。他们⼤致意思是相同的。其实这些难度都是很⼩的,⼤部分难的是⼀个写法。记下这个写法写这些东西都不是事情。
public MongoDatabase createMongoDatabase() {
MongoClientOptions.Builder userdbBuilder = MongoClientOptions.builder();
userdbBuilder.socketTimeout("");
userdbBuilder.maxWaitTime("");
MongoClientOptions userdbOptions = userdbBuilder.build();
MongoCredential mongoCredential = null;
if  (StringUtils._user)) {
mongoCredential = ateScramSha1Credential(
"mongo_user",
"mongo_dbName",
"mongo_passwd".toCharArray());
}
ServerAddress serverAddress = new ServerAddress(
<_host, _port);
//创建mongodb的连接客户端,对于这个创建ibatis中也有此类⽤法
serverAddress,
mongoCredential,
userdbOptions);
MongoDatabase coll = Database("mongoDBName");
return coll;
}
使⽤创建好的mongodb客户端获取到的database,来执⾏对应的增删改查。如下的创建⼀个查询条件,有两种写法
BasicDBObject query = new BasicDBObject();
query.put("字段", "查询条件");
//另⼀种写法
query = BasicDBObject.parse("'查询字段' : '查询内容'");
根据过滤条件执⾏查
//database是上⾯createMongoDatabase创建的
MongoCursor<Document> cursor = Collection("collectionName")
.find(query)
.skip("")
.limit(1000)
.iterator();
遍历获取查询到的内容
//遍历数据
while(cursor.hasNext()) {
js脚本编程入门Document document = ();
JSONObject jsonObject = JSONObject.Json());
this.Collection("collectionName").insertOne(document);
System.out.println(jsonObject);
}
Java运⾏mongodb js脚本,主要思想是,Java执⾏js。下⾯是连接数据库的脚本。⽤户名密码已经数据库名字已经被删掉,你可以⾃⾏添加⾃⼰特定的。
load("nashorn:mozilla_compat.js");
importPackage(java.util)
var serverAddress = db.ServerAddress("db ip address", portNum);
var credentials = ateScramSha1Credential("user", "dbname","password".toCharArray());
var dbname = "dbname";
var collctionName = "collctionName";
var userdbBuilder = db.MongoClientOptions.builder();
var userdbOptions = userdbBuilder.build();
var dataSrcClient = db.MongoClient(serverAddress, credentials, userdbOptions);
var collection = Database(dbname).getCollection(collctionName);
var dc = collection.find(org.bson.Document.parse("{'category':'试测'}")).iterator();
while(dc.hasNext()) {
var dbObj = dc.next();
print("开始打印数据库表的值 " + collctionName)
String("word"));
}
dc.close();
dataSrcClient.close();
有了上⾯的脚本后,你可以创建java的js执⾏引擎,然后执⾏这段代码。
private ScriptEngine scriptEngine =
new ScriptEngineManager().getEngineByName("nashorn");
这段读写的代码,可以在上上篇博客⾥ibatis源码解析到。有没有发现,这些⼤神级别的框架⾥⾯提供源码的东西都是极其优秀的。⽽且代码写的⾮常优雅。
Reader reader = new InputStreamReader(
scriptEngine.eval(reader);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。