大数据技术之NOSQL常见面试题

举报
tea_year 发表于 2025/09/17 08:40:41 2025/09/17
【摘要】 一、MongoDB操作题(40分、每题4分)1.1 在Linux服务器上部署MongoDB数据库服务器1.2 创建myscore数据库1.3 创建user集合1.4 插入5条document的数据,包含字段uname,age,score1.5 使用指令查询相关的数据1.6 使用指令更新数据1.7 删除任意一条数据,再次查询数据;1.8 统计user集合中插入文档的个数;1.9 查询文档中的前...

一、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(角色,可选值:admineditorviewer

· lastLogin(最后登录时间,ISODate 格式)

· score(用户积分,默认 0)

操作要求(使用 test 数据库,集合名为 users):

1. 插入 3 个用户文档,其中至少包含一个 admin 角色用户。

2. 查询所有 editor 角色用户的用户名和邮箱。

3. 将用户名为 "user1" 的用户的 score 字段增加 10。

1.2电商订单统计

背景:某国际电商平台的订单集合 orders 包含以下字段:

· orderId(订单 ID,唯一)

· userId(用户 ID)

· items(商品数组,每个商品包含 namepricequantity

· totalAmount(订单总金额)

· status(订单状态,如 paidshippedcancelled

· 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和主机名。

 

 

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。