Mongo数据库实验

MongoDB数据库操作

Student文档如下:

{

“name”: “zhangsan”,

“score”: {

“English”: 69,

“Math”: 86,

“Computer”: 77

}

}

{

“name”: “lisi”,

“score”: {

“English”: 55,

“Math”: 100,

“Computer”: 88

}

}

1.根据上面给出的文档,完成如下操作:

(1)用MongoDB Shell设计出student集合;

use test01

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'},{'score':1})

 

(4)修改lisi的Math成绩,改为95。

db.Student.update({name:'lisi'},{$set:{'score.Math':95}})

db.Student.find({name:'lisi'})

     

 

2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:

(1)添加数据:English:45       Math:89 Computer:100

      与上述数据对应的文档形式如下:

{

“name”: “scofield”,

“score”: {

“English”  : 45,

“Math”: 89,

“Computer”: 100

}

}

  

(2)获取scofield的所有成绩成绩信息(只显示score列)

 

 

 

 

 

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.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class TestMongoDB {

    public static void main(String[] args) {
        MongoCollection<Document> collection = getCollection("test01","Student");
        insert(collection);
        find(collection);
    }
    
    public static MongoCollection<Document> getCollection(String dbname,String collectionname){
        MongoClient  mongoClient=new MongoClient("localhost",27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase(dbname);
        MongoCollection<Document> collection = mongoDatabase.getCollection(collectionname);
        System.out.println("连接成功");
        return collection;
    }
    public static void insert(MongoCollection<Document> collection){
        Document document=new Document("name","scofield").append("score", new Document("English",45).append("Math", 89).append("Computer",100));
        List<Document> documents=new ArrayList<Document>();
        documents.add(document);
        collection.insertMany(documents);
        System.out.println("插入成功!");
    }
    public static void find(MongoCollection<Document> collection){
        try{
            MongoCursor<Document>  cursor= collection.find(new Document("name","scofield")).projection(new Document("score",1)).iterator();
            while(cursor.hasNext()){
                System.out.println(cursor.next().toJson());
            }
        }catch(Exception e){
            System.out.println("查找失败");
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
}

 

原文地址:https://www.cnblogs.com/a8047/p/15652599.html