Java 操作MongoDb 增删改查
如何安装mongodb,请参考http://blog.csdn.net/zpf336/article/details/50765789
注:此文基于mongoDb API 3.2.0进行的测试。
测试代码如下:
pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>mongo</groupId> <artifactId>mongodb</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mongodb</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.2.0</version> </dependency> </dependencies> </project>
package mongo.mongodb; import java.util.ArrayList; import java.util.List; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.UpdateResult; public class MongoDb { private static MongoCollection<Document> collection; /** * 链接数据库 * * @param databaseName * 数据库名称 * @param collectionName * 集合名称 * @param hostName * 主机名 * @param port * 端口号 */ public static void connect(String databaseName, String collectionName, String hostName, int port) { @SuppressWarnings("resource") MongoClient client = new MongoClient(hostName, port); MongoDatabase db = client.getDatabase(databaseName); collection = db.getCollection(collectionName); System.out.println(collection); } /** * 插入一个文档 * * @param document * 文档 */ public static void insert(Document document) { collection.insertOne(document); } /** * 查询所有文档 * * @return 所有文档集合 */ public static List<Document> findAll() { List<Document> results = new ArrayList<Document>(); FindIterable<Document> iterables = collection.find(); MongoCursor<Document> cursor = iterables.iterator(); while (cursor.hasNext()) { results.add(cursor.next()); } return results; } /** * 根据条件查询 * * @param filter * 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument, * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument * @return 返回集合列表 */ public static List<Document> findBy(Bson filter) { List<Document> results = new ArrayList<Document>(); FindIterable<Document> iterables = collection.find(filter); MongoCursor<Document> cursor = iterables.iterator(); while (cursor.hasNext()) { results.add(cursor.next()); } return results; } /** * 更新查询到的第一个 * * @param filter * 查询条件 * @param update * 更新文档 * @return 更新结果 */ public static UpdateResult updateOne(Bson filter, Bson update) { UpdateResult result = collection.updateOne(filter, update); return result; } /** * 更新查询到的所有的文档 * * @param filter * 查询条件 * @param update * 更新文档 * @return 更新结果 */ public static UpdateResult updateMany(Bson filter, Bson update) { UpdateResult result = collection.updateMany(filter, update); return result; } /** * 更新一个文档, 结果是replacement是新文档,老文档完全被替换 * * @param filter * 查询条件 * @param replacement * 跟新文档 */ public static void replace(Bson filter, Document replacement) { collection.replaceOne(filter, replacement); } /** * 根据条件删除一个文档 * * @param filter * 查询条件 */ public static void deleteOne(Bson filter) { collection.deleteOne(filter); } /** * 根据条件删除多个文档 * * @param filter * 查询条件 */ public static void deleteMany(Bson filter) { collection.deleteMany(filter); } }
测试类:
package mongo.mongodb; import java.util.List; import org.bson.Document; import org.junit.Before; import org.junit.Test; import com.mongodb.client.result.UpdateResult; public class MongoTest { @Before public void before(){ MongoDb.connect("test", "darren", "172.16.155.151", 27017); } @Test public void testInsert(){ Document document = new Document(); document.append("name", "wang").append("gender", "female"); MongoDb.insert(document); } @Test public void testFindAll(){ List<Document> results = MongoDb.findAll(); for(Document doc : results){ System.out.println(doc.toJson()); } } @Test public void testFindBy(){ Document filter = new Document(); filter.append("name", "li si"); List<Document> results = MongoDb.findBy(filter); for(Document doc : results){ System.out.println(doc.toJson()); } } @Test public void testUpdateOne(){ Document filter = new Document(); filter.append("gender", "male"); //注意update文档里要包含"$set"字段 Document update = new Document(); update.append("$set", new Document("gender", "female")); UpdateResult result = MongoDb.updateOne(filter, update); System.out.println("matched count = " + result.getMatchedCount()); } @Test public void testUpdateMany(){ Document filter = new Document(); filter.append("gender", "female"); //注意update文档里要包含"$set"字段 Document update = new Document(); update.append("$set", new Document("gender", "male")); UpdateResult result = MongoDb.updateMany(filter, update); System.out.println("matched count = " + result.getMatchedCount()); } @Test public void testReplace(){ Document filter = new Document(); filter.append("name", "zhang"); //注意:更新文档时,不需要使用"$set" Document replacement = new Document(); replacement.append("value", 123); MongoDb.replace(filter, replacement); } @Test public void testDeleteOne(){ Document filter = new Document(); filter.append("name", "li"); MongoDb.deleteOne(filter); } @Test public void testDeleteMany(){ Document filter = new Document(); filter.append("gender", "male"); MongoDb.deleteMany(filter); } }
官方帮助文档:https://docs.mongodb.org/getting-started/java/
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: Mac OSX 10.10搭建nginx+mysql+php-fpm环境