第1关:Java 操作 MongoDB 数据库(一)
package step1;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.FindIterable;
import com.mongodb.Block;
public class Mongoconnect{
public static void main( String args[] ){
Logger log = Logger.getLogger("org.mongodb.driver");
log.setLevel(Level.OFF); //屏蔽带时间的输出
try{
//在下面补充代码,连接到mongodb服务
/********* Begin *********/
MongoClient mongoClient = new MongoClient("localhost",27017);
MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
/********* End *********/
//在下面补充代码,创建集合test1
/********* Begin *********/
mongoDatabase.createCollection("test");
/********* End *********/
//在下面补充代码,获取集合test1
/********* Begin *********/
MongoCollection<Document> collection = mongoDatabase.getCollection("test");
/********* End *********/
//在下面补充代码,插入编程要求中的数据到集合test1
/********* Begin *********/
Document document1 = new Document();
document1.append("_id", "1");
document1.append("name", "Xiaoming");
document1.append("sex", "man");
document1.append("age", 21);
List<Document> documents = new ArrayList<Document>();
documents.add(document1);
collection.insertMany(documents);
/********* End *********/
//在Begin和End之间补充代码,请勿修改代码的原本框架
FindIterable<Document> iter = collection.find();
iter.forEach(new Consumer<Document>() {
@Override
public void accept(Document document) {
System.out.println(document.toJson());
}
});
Document doc = collection.find().first();
collection.deleteOne(doc);
}catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
第二关
package step2; import java.util.logging.Level; import java.util.logging.Logger; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.FindIterable; import com.mongodb.Block; import com.mongodb.client.model.Filters; import com.mongodb.client.MongoCursor; public class Mongo{ public static void main( String args[] ){ Logger log = Logger.getLogger("org.mongodb.driver"); log.setLevel(Level.OFF); //屏蔽带时间的输出 try{ //仿照第一关,连接数据库mydb2并选择集合test2 /********* Begin *********/ MongoClient mongoClient =new MongoClient("localhost"); MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb2"); MongoCollection collection =mongoDatabase.getCollection("test2"); //在下面补充代码,插入文档到集合test2中 /********* Begin *********/ Document document1=new Document(); document1.append("_id","1"); document1.append("name","Xiaoming"); document1.append("sex","man"); document1.append("age",21); Document document2=new Document(); document2.append("_id","2"); document2.append("name","Xiaohong"); document2.append("sex","woman"); document2.append("age",20); Document document3=new Document(); document3.append("_id","3"); document3.append("name","Xiaoliang"); document3.append("sex","man"); document3.append("age",22); List documents =new ArrayList(); documents.add(document1); documents.add(document2); documents.add(document3); collection.insertMany(documents); /********* End *********/ //在Begin和End之间补充代码,请勿修改代码的原本框架 FindIterable<Document> iter = collection.find(); System.out.println("文档插入结果如下:"); iter.forEach(new Block<Document>() { public void apply(Document _doc) { System.out.println(_doc.toJson()); } }); //在下面补充代码,更新 Xiaohong 的信息为23岁 /********* Begin *********/ collection.updateMany(Filters.eq("name", "Xiaohong"),new Document("$set",new Document("age",23))); /********* End *********/ //在Begin和End之间补充代码,请勿修改代码的原本框架 FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); System.out.println("更新后文档内容如下:"); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); }; //在下面补充代码,删除Xiaoliang的信息 /********* Begin *********/ collection.deleteMany(Filters.eq("name","Xiaoliang")); /********* End *********/ //在Begin和End之间补充代码,请勿修改代码的原本框架 FindIterable<Document> iter1 = collection.find(); System.out.println("删除信息后的文档内容为:"); iter1.forEach(new Consumer<Document>() { @Override public void accept(Document document) { System.out.println(document.toJson()); } }); collection.drop(); }catch (Exception e) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } } }