java - Firestore 按生日日期查询文档,例如仅按日和月查询不包括年份?
问题描述
我有 users 集合,其中每个用户都包含其birthday
归档为Timestamp
,所以现在我想查询生日是今天的用户,那么我如何才能只查询day
andmonth
因为在这种情况下year
无关紧要。
所以我知道我们只能像这样按日期搜索 firestore.collection("user").whereEqualTo("birhtday", todaysDate)
,但我们知道它不会返回任何东西,因为它也会匹配year
那么这里最好的解决方案是什么?
解决方案
由于将Date
对象作为第二个参数传递给以下查询:
firestore.collection("user").whereEqualTo("birhtday", todaysDate);
返回今天生日的所有用户,需要添加新属性。在这个新属性中,您可以简单地将日期存储为字符串格式的日期和月份:
shortBirhtday: "09-Jun"
然后使用以下命令查询数据库:
firestore.collection("user").whereEqualTo("shortBirhtday", "09-Jun");
此查询将返回所有在 6 月 9 日生日的用户,无论年份。
编辑:
根据@DougStevenson 的评论,存储日期的更合适的方式应该是:
09-06
where09
代表日,06
代表月。这是相应的查询:
firestore.collection("user").whereEqualTo("shortBirhtday", "09-06");
推荐阅读
- angular - 在环境中配置 Angular 路由
- libraries - Buildroot:如何添加库
- android - 在不发布应用的情况下添加 Google Play“安全元数据”
- c++ - 如何获取包含 NULL 字符的 shellcode 字符串的长度
- javascript - Datatable fixedcolumn with dynamic height
- c# - 执行函数作为属性装饰器的参数
- java - 短信队列优先级处理
- elasticsearch - 为什么es delete by query删除了更多记录
- python - 为什么它不起作用?我是python的初学者
- php - 通过 ajax 我想用 post 数据跳转到 filter.php 页面并在 filter.php 中显示结果