Mongo实验
1.根据上面给出的文档,完成如下操作:
(1)用MongoDB Shell设计出student集合;
(2)用find()方法输出两个学生的信息;
(3)用find()方法查询zhangsan的所有成绩(只显示score列);
(4)修改lisi的Math成绩,改为95。
2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:
(1)添加数据:English:45 Math:89 Computer:100
与上述数据对应的文档形式如下:
(2)获取scofield的所有成绩成绩信息(只显示score列)
********** ********** ********** ********** ********** ********** ********** ********** ********** ********** **********
(1) 用MongoDB Shell设计出student集合;
启动mongo服务
show dbs;
使用test数据库
use test
创建新的集合student并使用
db.createCollection('student');
插入数据
db.student.insert({"name":"zhangsan","score":{"English":69,"Math":86,"Computer":77}}) db.student.insert({"name":"lisi","score":{"English":55,"Math":100,"Computer":88}})
通过可视化工具查看结果
(2)用find()方法输出两个学生的信息;
db.student.find();
(3)用find()方法查询zhangsan的所有成绩(只显示score列);
db.student.find({name:"zhangsan"},{name:0,_id:0});
(4)修改lisi的Math成绩,改为95。
db.student.update({name:"lisi"},{$set:{score:{English:55,Math:95,Computer:88}}})
2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:
(1)添加数据:English:45 Math:89 Computer:100
配置maven依赖(Mongo-4.4.10)
<dependencies> <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.11.1</version> </dependency> </dependencies>
Java代码
1.连接数据库
package utils; import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; public class DBUtil { public static MongoDatabase getMongoDB() { //创建客户端 //这里仅仅是连接到了mongoDB服务器 MongoClient client = new MongoClient("localhost",27017); //dbb是数据库名字,连接到数据库 MongoDatabase mongoDatabase = client.getDatabase("test"); return mongoDatabase; } }
2.插入数据
public static void insertDoc() { MongoCollection<Document> coll = DBUtil.getMongoDB().getCollection("student"); //注意:一个document只能插入一次。id限制。 Document doc = new Document(); doc.append("name", "scofield"); doc.append("score", Arrays.asList("45","89","100")); // coll.insertOne(doc); List<Document> list = new ArrayList<>(); list.add(doc); coll.insertMany(list);
System.out.println("success");
}
3.主函数
public static void main(String[] args) { insertDoc(); }
运行结果:
(2)获取scofield的所有成绩成绩信息(只显示score列)
按照指定条件查询
public static void find(){ MongoCollection<Document> coll = DBUtil.getMongoDB().getCollection("student"); try{ Document document = new Document(); document.append("_id",0); document.append("name",0); MongoCursor<Document> cursor= coll.find(new Document("name","scofield")) .projection(document) .iterator(); while(cursor.hasNext()){ System.out.println(cursor.next().toJson()); } }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }
主函数
public static void main(String[] args) { find(); }
运行截图