首先,创建好项目,然后导入依赖:
----------------------------------------------------------------------------------------------------------------------------------------
<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.4.2</version> </dependency>
----------------------------------------------------------------------------------------------------------------------------------------
2.之后,再用cmd命令窗口打开MongoDB的服务,命令窗口就不用关闭了。
----------------------------------------------------------------------------------------------------------------------------------------
3.之后,新写一个类(MongoDb):
这里就是我的一些方法:
package com.MongoDb; 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 org.bson.BSON; import org.bson.Document; import org.bson.conversions.Bson; import javax.print.Doc; import java.util.ArrayList; import java.util.List; public class MongoDb { private static MongoCollection<Document> collection; /** * 链接数据库 * @param databaseName 数据库名称 * @param collectionName 集合名称 * @param hostName 主机名 * @param port 端口号 */ public static void connects(String databaseName,String collectionName,String hostName,int port){
//MongoDB连接
MongoClient client=new MongoClient(hostName,port);
//得到数据库 MongoDatabase db=client.getDatabase(databaseName);
//得到连接
collection=db.getCollection(collectionName);
//打印输出一下我的数据库名 System.out.println(collectionName); } /** * 插入一个文档: */ public static void insert(Document document){ collection.insertOne(document); } /** * * 查询所有的文档 * 返回所有的文档集合 */ public static List<Document> findAll(){ List<Document> results=new ArrayList<Document>(); FindIterable<Document> iterable=collection.find(); MongoCursor<Document> cursor=iterable.iterator(); while(cursor.hasNext()){ results.add(cursor.next()); } return results; } /** * 根据条件查询 */ public static List<Document> findBy(Bson filter){
//Bson中就是条件参数 List<Document> results=new ArrayList<Document>(); FindIterable<Document> iterable=collection.find(filter); MongoCursor<Document> cursor=iterable.iterator(); while(cursor.hasNext()){ results.add(cursor.next()); } return results; } /** * 根据条件删除一个文档: */ public static void delone(Bson filter){ collection.deleteOne(filter); } /** * 根据条件删除多个文档: */ public static void delmany(Bson filter){ collection.deleteMany(filter); } /** * 修改 */ public static void update(Bson filter,Document update){
//第一个Bson是条件,然后后面的Document就是修改后的对象属性
collection.updateOne(filter,update);
}
}
----------------------------------------------------------------------------------------------------------------------------------------
4.然后,你可以写一个测试类去调用:
//连接: @Before public void before(){ //调用MongoDB中的connect方法: MongoDb.connects("user","tb_user","127.0.0.1",27017); } @Test public void trstadd(){ //创建文档 Document document=new Document(); //追加文档内容: document.append("name","even").append("age",19); //通过MongoDb类中的insert添加: MongoDb.insert(document); } @Test public void getall(){ List<Document> results=MongoDb.findAll(); for (Document result : results) { System.out.println(result.toJson()); } } //根据姓名查询: @Test public void testFindBy(){ Document filter=new Document(); filter.append("name","even"); List<Document> results=MongoDb.findBy(filter); for (Document document : results) { System.out.println(document.toJson()); } } //修改: @Test public void update(){ Document filter=new Document(); filter.append("name","小天使").append("age",17); //注意 update文档里面要包含“$set”字段: Document update=new Document(); update.append("$set",new Document("_id",5 )); MongoDb.update(filter,update); }