面试题答案
一键面试假设使用的是 MongoDB 数据库,查询语句如下:
db.users.find({
age: { $gte: 25, $lte: 35 },
hobbies: { $in: ['football'] },
register_date: { $gte: new Date(new Date().getTime() - 365 * 24 * 60 * 60 * 1000) }
});
如果是使用其他数据库,例如 SQL 数据库(假设表名为 users
),假设数据库支持日期函数和数组查询(部分数据库对数组查询语法可能不同),示例代码如下:
SELECT *
FROM users
WHERE age BETWEEN 25 AND 35
AND hobbies::text LIKE '%football%'
AND register_date >= CURRENT_DATE - INTERVAL '1 year';
上述 SQL 代码中 hobbies::text LIKE '%football%'
只是一种模拟数组中包含特定元素的方式,在实际不同数据库中需要按其支持的数组查询语法来。例如 PostgreSQL 有 @>
操作符等。