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集合;

cmd界面进入mongo命令

use mongodb_test

db.createCollection("Student")

db.Student.insertOne({name:'zhangsan',score:{English:69,Math:86,Computer:77}})

db.Student.insertOne({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.updateOne({name:”lisi”},{$set:{“score.Math”:NumberInt(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列)

代码:

package Mongo;

import com.mongodb.MongoClient;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoCursor;

import com.mongodb.client.MongoDatabase;

import org.bson.Document;

 

import java.util.ArrayList;

import java.util.List;

 

 

public class MongoDBJDBC {

    public static void main(String[] args) {

        MongoCollection<Document> collection = getCollection("mongodb_test","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() );

        }

    }

 

}

截图:

 

 

posted @ 2021-10-21 22:50  我试试这个昵称好使不  阅读(64)  评论(0编辑  收藏  举报