MongoDB基本操作_练习题

1、创建名称为自己姓名拼音缩写的数据库。
use why
2、创建名为姓名拼音缩写+col的集合,如dugncol。
db.createCollection("whycol")
show collections
3、删除2中的集合,重新创建格式如dugncolnew的集合。
db.whycol.drop()
db.createCollection("whycolnew")
4、在3创建的集合中,插入10条文档数据,要求分别插入到class为“计算机161”和“计算机162”中,其它字段如下图所示:
db.whycolnew.find()
db.whycolnew.drop()
var temDay=1;
var temTime=new Date();
for(var i=1;i<=10;i++){
    temDay=Math.round(Math.random()*100)%30;
    if(temDay>9){
        temTime=new Date('2015-09-'+temDay);
        }
     else{
         temTime=new Date('2015-09-0'+temDay);
         }
     db.whycolnew.insert({
         "class":("计算机16"+(Math.round(Math.random()*10)%2+1)),
         "name":"zhangsan"+i,
         "sex":Math.round(Math.random()*10)%2,
         "age":Math.round(Math.random()*6)+3,
         "hobby":["吃饭","睡觉","玩耍"],
         "createDate":temTime
         });
    }
5、将3中集合中所有age为6的数据修改为age为21。
db.whycolnew.updateMany({'age':6},{$set:{'age':21}})    
6、将name为zhangsan7的学生年龄修改为8岁,将兴趣爱好修改为跳舞和画画;
db.whycolnew.update({'name':'zhangsan7'},{$set:{'age':8,'hobby':['跳舞','画画']}})
7、追加zhangsan7的兴趣爱好为sing
db.whycolnew.update({'name':'zhangsan7'},{$push:{'hobby':'唱歌'}})
8、修改所有学生年龄增加一岁;
db.whycolnew.update({'age':{$gt:0}},{$inc:{'age':1}},false,true)
9、删除zhangsan7学生的sex属性;
db.whycolnew.update({'name':'zhangsan7'},{$unset:{'sex':1}})
10、删除所有4岁的学生。
db.whycolnew.deleteMany({'age':4})
11、删除第一位6岁的学生;
db.whycolnew.deleteOne({'age':6})
12、查询全部学生除_id字段之外的所有信息;
db.getCollection('whycolnew').find({},{_id:0})
13、查看所有年龄大于4岁并且小于10岁的学生姓名;
db.whycolnew.find({'age':{$gt:4,$lt:10}},{'name':1,'age':1,_id:0})
14、查看所有年龄大于4岁并且性别值为0的学生的姓名、性别、年龄;
db.whycolnew.find({'age':{$gt:4},'sex':0.0},{'name':1,'sex':1,'age':1})
db.whycolnew.find()
15、查看所有年龄是6岁或9岁的学生;
db.whycolnew.find({$or:[{'age':6},{'age':9}]})
16、查询所有“计算机161”班级下年龄为6或者性别为0的学生;
db.whycolnew.find({'class':'计算机161',$or:[{'age':6},{'sex':1.0}]})
17、查询所有兴趣中以“跳”字开头的学生;
db.whycolnew.find({'hobby':/^/})
18、查询所有兴趣字段为string的学生信息;
db.whycolnew.find({'hobby':{$type:'string'}})
19、查看年龄为第二大的学生信息;
//limit(1):显示一条数据 skip(1):跳过一条数据  sort(-1):降序排序  sort(1):升序排序
db.whycolnew.find().limit(1).skip(1).sort({'age':-1})
20、为年龄字段创建升序索引;
// 1代表升序,-1代表降序
db.whycolnew.createIndex({'age':1})
21、计算每个班级学生人数
db.whycolnew.aggregate([{$group:{_id:'$class',num:{$sum:1}}}])
22、计算每个班级男生(sex=0)人数;
db.whycolnew.aggregate([{$match:{'sex':0.0}},{$group:{_id:'$class',man_num:{$sum:1}}}])
23、按照如下脚本插入数据;添加完成后查询出,入学日期(createDate)大于2015-09-10的所有计算机162班女生每天入学总数,并且按照日期先后顺序排序。
//$match:过滤数据  $group:将文档分组,可用于统计结果
db.whycolnew.aggregate([
    {$match:{"createDate":{$gt:ISODate("2015-09-10T00:00:00Z")},"class":"计算机162","sex":1}},
    {$group:{
        _id:{$dateToString:{format:"%Y-%m-%d",date:"$createDate"}},
        num:{$sum:1}
        }
    },
    {$sort:{"_id":1}}
])
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值