做网站最低服务器配置,黄冈网站推广在线观看,网站建设的费是多少,单个页面的网站MongoDB是当今非常流行的一款NoSQL数据库#xff0c;本文介绍如何使用MongoDB的Java驱动来操作MongoDB。一、引入MongoDB Java Driver包如果需要操作MongoDB的Java项目是一个Maven项目#xff0c;可以在依赖中加上以下的配置。dependenciesdependencygro…MongoDB是当今非常流行的一款NoSQL数据库本文介绍如何使用MongoDB的Java驱动来操作MongoDB。一、引入MongoDB Java Driver包如果需要操作MongoDB的Java项目是一个Maven项目可以在依赖中加上以下的配置。dependenciesdependencygroupIdorg.mongodb/groupIdartifactIdmongo-java-driver/artifactIdversion2.13.2/version/dependency
/dependencies或者通过直接下载jar包的方式使用下载地址mongo-java-driver-2.13.2.jar。详细的如何引入MongoDB jar包的方法可以参考官方文档。二、连接MongoDB可以使用MongoClient来连接MongoDBMongoClient的使用方式如下MongoClient mongoClient new MongoClient(localhost, 27017);
DB db mongoClient.getDB(mydb);上面的代码连接了localhost:27017上MongoDB服务并指定使用mydb数据库。连接后便可以对这个数据库作进一步的操作。需要指出的是MongoClient是线程安全的可以在多程程环境中共享同一个MongoClient。通常来说一个应用程序中只需要生成一个全局的MongoClient实例然后在程序的其他地方使用这个实例即可。三、认证可以使用多种方式对连接进行认证下面介绍两种方式。1. 方式一MongoCredentialMongoCredential类的createCredential方法可以指定认证的用户名密码以及使用的数据库并返回一个MongoCredential对象。其方法的声明如下static MongoCredential createCredential(String userName, String database, char[] password)例如MongoCredential credential MongoCredential.createCredential(user, mydb, password.toCharArray();上面创建了一个用户名为user密码为password数据库为mydb的MongoCredential对象。将生成MongoCredential的对象作为MongoClient构造函数的参数。由于MongoClient构造函数的为ListMongoCredential类型所以需要先构造成一个List再传递。完整的认证的例子如下MongoCredential credential MongoCredential.createCredential(user, mydb, password.toCharArray());
ServerAddress serverAddress new ServerAddress(localhost, 27017);
MongoClient mongoClient new MongoClient(serverAddress, Arrays.asList(credential));
DB db mongoClient.getDB(mydb);2. 方式二MongoClientURI亦可以使用MongoClientURI完成MongoDB的认证它代表了一个URI对象。MongoClientURI的构造函数接受一个String类型的字符串这个字符串的格式如下mongodb://[username:password]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]生成的MongoClientURI对象作为MongoClient构造函数的参数完整的认证例子如下String sURI String.format(mongodb://%s:%s%s:%d/%s, user, password, localhost, 27017, mydb);
MongoClientURI uri new MongoClientURI(sURI);
MongoClient mongoClient new MongoClient(uri);
DB db mongoClient.getDB(mydb);四、获取一个集合DBCollection coll db.getCollection(mycol);然后可以对指定的集合进行操作例如插入删除查找更新文档等。五、插入文档例如一个文档以Json来表示如下{ “name”: “mongo”, “info”: { “ver”: “3.0” } }现在需要插入到集合mycol中。为了插入到集合中可以使用BasicDBObject构造一个文档。BasicDBObject doc new BasicDBObject(name, mongo).append(info, new BasicDBObject(ver, 3.0));
coll.insert(doc);六、查找文档1. 通过findOne查找一个符合条件文档通过findOne可以查找一个符合条件的文档。例如对于上面的mycol集合执行以下命令DBObject myDoc coll.findOne();
System.out.println(myDoc);将输出mycol集合中的第一个文档。也可以通过指定findOne的查找参数来查找符合查找条件的一个文档。2. 通过find查找所有符合条件的文档find用来查找符合条件的文档它返回一个DBCursor对象通过遍历DBCursor对象可以获得所有符合查找条件的文档。为了说明和测试我们先插入一批以下格式的文档{ “i”: value }
for (int i0; i 100; i) {coll.insert(new BasicDBObject(i, i));
}find的使用示例如下DBCursor cursor coll.find();
try {while(cursor.hasNext()) {System.out.println(cursor.next());}
} finally {cursor.close();
}会输出mycol集合中所有的文档。也可以指定查找的条件例如BasicDBObject query new BasicDBObject(i, 71);DBCursor cursor coll.find(query);try {while(cursor.hasNext()) {System.out.println(cursor.next());}
} finally {cursor.close();
}对于查找条件中包括$操作符的情形例如以下一条mongo shell命令db.coll.find({i: {$gte: 50}});可以使用DBObject生成查找条件// find all where i 50
BasicDBObject query new BasicDBObject(i, new BasicDBObject($gte, 50));DBCursor cursor coll.find(query);
try {while (cursor.hasNext()) {System.out.println(cursor.next());}
} finally {cursor.close();
}七、更新文档BasicDBObject query new BasicDBObject(i, 70);
BasicDBObject up new BasicDBObject($set, new BasicDBObject(i, 100));
coll.update(query, up);上面的语句将i为70的文档更新i的值等于100。与我们常用的更新文档的mongo语句一样DBCollection还包含了savefindAndModify等更新文档的方法其使用方法在此不再赘述可以参考API说明文档即可。八、删除文档可以通过生成一个DBObject对象来删除指定的文档例如BasicDBObject query new BasicDBObject(i, 71);
coll.remove(query);上面的语句删除i为71的文档。