我正在尝试查询Firestore数据库以进行收集并按日期进行过滤。
我有一个Timestamp字段,当一个名为“ specificDate”的字段等于now()时,我需要获取结果。
app.get('/execute', async(req, res, next) => {
const snaps = await db.collection('notifications').where("specificDate", "==", new Date()).get()
const results= [];
snaps.forEach(snap => results.push(snap.data()));
res.status(200).json({results});
});
无论任何组合,我都没有结果。如果我将“ ==”更改为“ ”,我将获得结果。
恐怕问题与时间有关,我想忽略它,我只关心年,月和日。
下图说明了我的消防站集合,其中只有1个项目。
我正在研究,但我还不走运。
最佳答案
使用AND查询为查询提供所需的范围。由于您不在乎精确匹配时间,因此请在整天范围内提供时间。
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date(start.getTime());
end.setHours(23,59,59,999);
const snaps = await db.collection('notifications').where("specificDate", ">=", start ).where("specificDate", "<=", end).get()