作业四及答案
快捷查找:Ctrl+F 在搜索框中输入题目
一. 单选题(共9题)
1. (单选题 )MongoDB属于什么类型的数据库?
A. 列族数据库
B. 键值对数据库
C. 文档数据库
D. 图数据库
正确答案: C:文档数据库;
2. (单选题 )下面对MongoDB的描述哪个不是正确的?
A. 是关系型的
B. 是面向文档的
C. 是分布式的
D. 是一种NoSQL数据库
正确答案: A:是关系型的;
3. (单选题 )MongoDB 采用什么格式完成存储数据和网络数据交换
A. BSON
B. 二进制
C. Object
D. Json
正确答案: A:BSON;
4. (单选题 )以下哪种逻辑结构不属于MongoDB
A. 表table
B. 数据库db
C. 集合collection
D. 文档document
正确答案: A:表table;
5. (单选题 )MongoDB中主键的默认格式是哪个?
A. UUID
B. 序列sequence
C. 自增auto_increment
D. ObjectId
正确答案: D:ObjectId;
6. (单选题 )关于文档的命名规则,下列选项描述不正确的是。
A. 键不能包含空字符串
B. 键不能用$开头
C. 键不能包含.
D. 键不能用_开头
正确答案: D:键不能用_开头;
7. (单选题 )关于集合的命名规则,下列选项描述不正确的是。
A. 集合不能是空字符串
B. 集合不能用system. 开头
C. 集合名中不能包含 . (点)
D. 集合名中不能包含$
正确答案: C:集合名中不能包含 . (点);
8. (单选题 )与select age,name from stu where id=5含义一样的MongoDB语句是哪个?
A. db.stu.find({id:5},{age:1,name:1,_id:0})
B. db.stu.find({id:5,age:1,name:1,_id:0})
C. db.stu.find({id:{$gt:5}},{age:1,name:1,_id:0})
D. db.stu.find({id:{$lt:5}},{age:1,name:1,_id:0})
正确答案: A:db.stu.find({id:5},{age:1,name:1,_id:0});
9. (单选题 )可以完成插入操作的方法不包括?
A. insert
B. update
C. save
D. delete
正确答案: D:delete;
二. 阅读理解(共2题)
10. (阅读理解)代码书写题:
(1) (简答题 ) 利用shell命令新建一张名为stu的表(本题的表代表集合的意思)。
正确答案:
db.createCollection("stu")
(2) (简答题 ) 向table表中添加数据name:”tom”
正确答案:
db.stu.insert({name:"tom"})
(3) (简答题) 将下面两条数据插入到stu表中
Name:xiaoming age:18
Name:lili age:20
正确答案:
db.stu.insert([{Name:"xiaoming",age:"18"},{Name:"lili",age:"20"}])
(4) (简答题) 修改stu表中xiaoming的年龄为15
正确答案:
db.stu.update({Name:"xiaoming"},{$set:{age:"15"}})
(5) (简答题) 查看stu表中的数据(格式化输出)
正确答案:
db.stu.find({}).pretty()
(6) (简答题) 查询stu表中的age大于20的数据
正确答案:
db.stu.find({age:{$gt:20}}).pretty()
(7) (简答题 ) 删除stu表中lili的数据(删除1条)
正确答案:
db.stu.deleteOne({name:"lili"})
(8) (简答题 ) 删除stu表中lili的数据(删除多条)
正确答案:
db.stu.deleteMany()
11. (阅读理解, 2 )阅读题目,回答问题。
现有数据:pnumber:商品编号,quantity:商品数量,price:商品单价,插入如下商品信息:
db.items.insert([
{"quantity":2,"price":5.0,"pnumber":"103"},
{"quantity":2,"price":8.0,"pnumber":"102"},
{"quantity":1,"price":4.0,"pnumber":"102"},
{"quantity":2,"price":4.0,"pnumber":"101"},
{"quantity":4,"price":10.0,"pnumber":"103"},
{"quantity":10,"price":20.0,"pnumber":"101"},
{"quantity":10,"price":20.0,"pnumber":"103"},
{"quantity":5,"price":10.0,"pnumber":"102"}
])
(1) (简答题 ) 统计items共有多少个文档数据。
正确答案:
db.items.count()
(2) (简答题 ) 查询quantity为10且价格大于等于5的商品数据
正确答案:
db.items.find({quantity:5,price:{$gte:5}})
(3) (简答题 ) db.items.find({$or:[{quantity:5},{price:{$lte:12}}]}),回答此代码含义。
正确答案:
查询quantity为5或价格小于等于12的商品数据。
(4) (简答题 ) db.items.aggregate([{$group:{_id:"$pnumber",price:{$avg:"$price"}}}]),回答此代码含义。
正确答案:
通过相同的产品类型来进行分组,然后查询每个订单详情相同产品类型卖出的平均价格。
(5) (简答题 ) db.items.aggregate([{$group:{_id:"$pnumber",max:{$max:"$quantity"}}}]),写出运行结果。
正确答案:
{"_id":"101","max":10}
{"_id":"102","max":5}
{"_id":"103","max":10}