MST
星途 面试题库

面试题:MongoDB数组类型数据查询之多条件筛选

假设有一个集合students,其中每个文档包含一个scores数组,存储学生的各科成绩。例如:{name: 'Alice', scores: [85, 90, 78]}。请写出查询语句,找出至少有一门成绩大于90分且名字以'A'开头的学生文档。
28.5万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

假设使用的是MongoDB数据库,查询语句如下:

db.students.find({
    name: /^A/,
    scores: { $gt: 90 }
});

解释:

  1. name: /^A/ 用于匹配名字以'A'开头的学生。这里使用正则表达式,^ 表示匹配字符串的开始位置。
  2. scores: { $gt: 90 } 用于匹配至少有一个成绩大于90分的学生。$gt 是大于的操作符。