【发布时间】:2020-03-25 11:22:28
【问题描述】:
我正在尝试从 Firestore 获取数据。因为我试图根据日期范围(fromDate 和 toDate)进行检索,所以我决定使用两个单独的查询。第一个在 ToDate 之前举行婚礼,第二个在 fromDate 之后举行婚礼。然后我想在 SET 中添加两者的结果,以避免重复。但是当我使用response.json 并传入resultSet 时,它是空的。如果我将 resultsSet 更改为列表,它会吐出我正在寻找的数据。
这是我现在拥有的代码:
exports.getWeddingsBasedOnDateRange = (request, response) => {
const weddingSearchParams = {
fromDate: new Date(request.body.fromDate),
toDate: new Date(request.body.toDate),
guests: request.body.guests
};
let weddingsBeforeToDate = [];
let weddingsAfterFromDate = [];
db.collection("weddings")
.where("toDate", "<=", weddingSearchParams.toDate)
.where("guests", "==", weddingSearchParams.guests)
.get()
.then(data => {
data.forEach(doc => {
weddingsBeforeToDate.push({
...doc.data(),
weddingId: doc.id
});
});
db.collection("weddings")
.where("fromDate", ">=", weddingSearchParams.fromDate)
.where("guests", "==", weddingSearchParams.guests)
.get()
.then(data => {
data.forEach(doc => {
weddingsAfterFromDate.push({
...doc.data(),
weddingId: doc.id
});
});
let resultSet = new Set();
resultSet.add(weddingsBeforeToDate);
resultSet.add(weddingsAfterFromDate);
return response.json(resultSet);
})
.catch(err => console.error(err));
})
.catch(err => console.error(err));
};
我在网上找不到任何关于 set 与 response.json 的兼容性的信息,但我不明白为什么它不能接受 Set。
任何帮助将不胜感激!
【问题讨论】:
标签: node.js json list google-cloud-firestore set