MongDB数据库测试题
MongDB是一种文档型数据库,都是采用K-V的方式存储的,类似于一种JSON,也成为BSON,
#以上的数据全部基于MongoDB的创建查询和简单应用,MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案
#l创建学校School数据库
luse school
#l展示school数据库
ldb
l#创建表
ldb.createCollection(“student”)
l#展示集合类似(学生表)
l show collections
l创建学生表Student,插入一条信息。字段名称有:学号:studentNO 学生姓名:studentName,年龄age,班级grade,电话phone,QQ,成绩:result
db.student.insert({"_id":"1","studentNO":"1001","studentName":"小王","age":NumberInt(12),"grade":NumberInt(1),
"Phone":"13800000000","QQ":"12345678","result":NumberInt(60)
l})
l插入多条学生数据,(注意区分大小写)
ldb.student.insertMany([
{"_id":"2","studentNO":"1002","studentName":"小周","age":NumberInt(20)
,"grade":NumberInt(1)
,"Phone":"13800000124","QQ":"12345678","result":NumberInt(60)
l},
{"_id":"3","studentNO":"1003","studentName":"晓东","age":NumberInt(12)
,"grade":NumberInt(1)
,"Phone":"13800000550","QQ":"12345678","result":NumberInt(80)
l},
{"_id":"4","studentNO":"1004","studentName":"小王 ","age":NumberInt(18)
,"grade":NumberInt(5)
,"Phone":"1380000055","QQ":"12345678","result":NumberInt(80)
l},
{"_id":"5","studentNO":"1005","studentName":"小学","age":NumberInt(12)
,"grade":NumberInt(1)
,"Phone":"13800000550","QQ":"12345678","result":NumberInt(80)
l},
{"_id":"6","studentNO":"1005","studentName":"小学","age":NumberInt(12)
,"grade":NumberInt(1)
,"Phone":"13800000550","QQ":"12345678","result":NumberInt(80)
l},
{"_id":"7","studentNO":"1001","studentName":"小王","age":NumberInt(12)
,"grade":NumberInt(2)
,"Phone":"13800000000","QQ":"12345678","result":NumberInt(60)
l},
l]);
l为了避免出错的的查询可以添加try catch这种模式
ltry{
ldb.student.insertMany([
{"_id":"8","studentNO":"1002","studentName":"天天","age":NumberInt(20)
","grade":NumberInt(1)
,"Phone":"13800000124","QQ":"12345678","result":NumberInt(60)
l},
{"_id":"9","studentNO":"1003","studentName":"晓","age":NumberInt(20)
,"grade":NumberInt(1)
,"Phone":"13800000550","QQ":"12345678","result":NumberInt(60)
l},
l]);
l}catch(e){
l print(e);
l}
l#查询表中所有的信息
ldb.student.find()
l#查询学生姓名为小王的信息,
ldb.student.find({"studentName":"小王"})
l#查询年龄都在18的信息
db.student.find({"age":NumberInt(18)
l})
l#增加一个名叫希望得学生信息,
ldb.student.insert(
{"_id":"15","studentNO":"1002","studentName":"希望","age":NumberInt("20"),"grade":NumberInt(1)
,"Phone":"13800000124","QQ":"12345678","result":NumberInt(60)
l})
#修改名叫晓东的年龄为28,直接修改,会覆盖修改
l db.student.update({"studentName":"晓东"},{age:NumberInt(28)})
l#修改学号为1005的学生信息,将年龄修改成17,但要保留其他的信息,
db.student.update({"studentNO":"1005"},{$set:{age:"17",grade:NumberInt(2)
l}})
l#查询年龄大于15岁的并且班级为5班的学生
db.student.find({$and:[{age:{$gt:NumberInt(15)}},{"grade":NumberInt(5)
l}]})
l#统计所有的数据数量
ldb.student.count()
l#统计18岁学生的数量
ldb.student.count({"age":NumberInt(18)})
l#查询18岁以上的学生年龄。年龄设置字符串格式的除外不计入查询
ldb.student.count({"age":{$gt:NumberInt(18)}})
l#分页查询第一页的数据,查询的数量为3,
l db.student.find().limit(3)
l#进行分页查询全部的信息
l db.student.find().limit(3),
ldb.student.find().skip(3).limit(3)
ldb.student.find().skip(6).limit(3)
l#查询班级为1的学生信息
ldb.student.find({"grade":NumberInt(1)})
l#查询班级为1的学生姓名和年龄
l db.student.find({"grade":NumberInt(1)},{studentName:1,age:1})
#l查询班级为1的学生姓名和年龄,包含有主键ID
l db.student.find({"grade":NumberInt(1)},{studentName:1,age:1,_id:0})
#l查询所有的数据,只显示_id,studentName,age
ldb.student.find({},{studentName:1,age:1})
#l对年龄进行升序排序
ldb.student.find().sort({age:1})
#l删除年龄为28的 的学生信息,
db.student.remove({"age":NumberInt(28)})
#l查询索引
ldb.collection.getIndexes()
#l删除数据库
db.dropDatabase()