大数据技术之NOSQL常见面试题
一、MongoDB操作题(40分、每题4分)
1.1 在Linux服务器上部署MongoDB数据库服务器
1.2 创建myscore数据库
1.3 创建user集合
1.4 插入5条document的数据,包含字段uname,age,score
1.5 使用指令查询相关的数据
1.6 使用指令更新数据
1.7 删除任意一条数据,再次查询数据;
1.8 统计user集合中插入文档的个数;
1.9 查询文档中的前3条数据
1.10 对分档按照score进行降序排列;
二、Redis实操题(60分、每题10分)
2.1 在Windows下部署、配置Redis,然后使用客户端工具进行链接测试,保证连通成功;
2.2 针对某用户,采用String类型创建,uname,passwd,checkcode关键字,并设置相应的值,checkcode的有效时间是60s,做查询测试;
2.3 针对某用户的朋友圈进行评论操作,采用list类型,对comment(评论)进行5条数据的创建,并遍历出来,在第2条数据之后增加1条数据,然后对第2条数据修改,最后删除第2条数据;
2.4 使用Redis实现从5个用户中的抽奖功能,每次抽1个,最终抽奖3次;
2.5 使用Redis的set类型,实现2个tom(好友是a b c d ) jack(好友是c d e f),查找共同好友的功能。
2.6 使用Redis的hash类型,实现对用户的购物车cart,进行商品、数量的添加、删除、修改、查找的功能。
三、MongoDB操作题(20分、2*10=20分)
1.1背景:某国际社交平台在海外拓展业务,使用MongoDB存储用户信息,包含以下字段:
· username(用户名,唯一)
· email(邮箱)
· password(密码)
· role(角色,可选值:admin、editor、viewer)
· lastLogin(最后登录时间,ISODate 格式)
· score(用户积分,默认 0)
操作要求(使用 test 数据库,集合名为 users):
1. 插入 3 个用户文档,其中至少包含一个 admin 角色用户。
2. 查询所有 editor 角色用户的用户名和邮箱。
3. 将用户名为 "user1" 的用户的 score 字段增加 10。
1.2电商订单统计
背景:某国际电商平台的订单集合 orders 包含以下字段:
· orderId(订单 ID,唯一)
· userId(用户 ID)
· items(商品数组,每个商品包含 name、price、quantity)
· totalAmount(订单总金额)
· status(订单状态,如 paid、shipped、cancelled)
· orderDate(下单时间,ISODate 格式)
操作要求(使用 ecommerce 数据库):
1. 查询 2023 年 10 月内所有已完成(status: "paid")订单的总金额平均值。
2. 统计每个用户的订单数量,并按数量降序排列(输出 userId 和 count)。
四、Redis实操题(20分、每题10分)
2.1背景:某大型互联网企业需要高并发,缓存数据库查询结果,缓存键为 cache:user:<userId>,值为 JSON 字符串,过期时间 60 秒。
操作要求(使用 cache_db 数据库):
1. 插入用户 1001 的缓存数据 {"name":"你的名字","age":20},并设置过期时间。
2. 查询键 cache:user:1001 是否存在,若存在则返回 TTL。
3. 模拟数据库更新,删除该缓存键,并验证删除结果。
2.2 背景 某国内互娱棋牌游戏公司,游戏积分排行榜存储在 rank 集合中,成员为 user:<userId>,分数为积分。
操作要求(使用 game_db 数据库):
1. 添加用户 2001(分数 1800)和 2002(分数 2600)到排行榜。
2. 查询排行榜前 3 名(倒序)的用户名和分数。
3. 查询积分最高的用户是哪位用户。
五、
背景:某央企需使用信创数据库,为内部应用创建数据库用户,并记录所有客户端访问的IP和主机名,要求仅限特定管理员可查询日志。
操作要求(基于 Oil_db 数据库):
1.在Linux服务器下,安装和部署OpenGauss;
2.角色与权限管理(40分)
· 创建角色 db_admin,赋予创建数据库、删除用户的权限。
· 创建用户 app_user,密码设为 App@123,默认所属角色为 readwrite。
· 配置 app_user 仅能对 emp表授权,执行 SELECT 和 INSERT 操作。
· 创建模式Schema s_emp,包含emp表;
3.登录服务器与日志配置(20分)
创建Schema s_client,创建客户端表client日志表;
· 使用ip -a查询你的ip和mac地址,将你的ip和mac地址插入到创建的表中。
4.验证与查询(20分)
· 模拟客户端(IP:192.168.10.20)登录数据库,执行一条 SELECT 语句。
· 查询日志表或系统表,验证是否成功记录客户端IP和主机名。
- 点赞
- 收藏
- 关注作者
评论(0)