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 Stu db.createCollection('student') show dbs use Stu
随后将给出的数据插入student集合
stus=[{"name":"zhangsan","scores":{"English":69,"Math":86,"Computer":77}},{"name":"lisi","score":{"English":55,"Math":100,"Computer":88}}] db.student.insert(stus) db.student.insert(stus)
(2)用find()方法输出两个学生的信息;
db.student.find()
(3)用find()方法查询zhangsan的所有成绩(只显示score列);
db.student.find({"name":"zhangsan"},{"_id":0,"name":0})
(4)修改lisi的Math成绩,改为95。
db.student.update({"name":"lisi"}, {"$set":{"score.Math":95}} )
2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:
(1)添加数据:English:45 Math:89 Computer:100
与上述数据对应的文档形式如下:
{ “name”: “scofield”, “score”: { “English”: 45, “Math”: 89, “Computer”: 100 } } |
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; public class mongo_insert { public static void main(String[] args) { // TODO Auto-generated method stub //实例化一个mongo客户端 MongoClient mongoClient=new MongoClient("localhost",27017); //实例化一个mongo数据库 MongoDatabase mongoDatabase = mongoClient.getDatabase("Stu"); //获取数据库中某个集合 MongoCollection<Document> collection = mongoDatabase.getCollection("student"); //实例化一个文档,内嵌一个子文档 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("文档插入成功"); } }
运行后结果截图:
(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; import com.mongodb.client.model.Filters; import static com.mongodb.client.model.Filters.eq; public class mongo_query { public static void main(String[] args) { // TODO Auto-generated method stub //实例化一个mongo客户端 MongoClient mongoClient=new MongoClient("localhost",27017); //实例化一个mongo数据库 MongoDatabase mongoDatabase = mongoClient.getDatabase("Stu"); //获取数据库中某个集合 MongoCollection<Document> collection = mongoDatabase.getCollection("student"); //进行数据查找,查询条件为name=scofield, 对获取的结果集只显示score这个域 MongoCursor<Document> cursor=collection.find( new Document("name","scofield")). projection(new Document("score",1).append("_id", 0)).iterator(); while(cursor.hasNext()) System.out.println(cursor.next().toJson()); } }