首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firestore按日期范围查询

Firestore按日期范围查询
EN

Stack Overflow用户
提问于 2017-10-29 21:42:10
回答 12查看 124K关注 0票数 102

我需要的帮助,以查询与日期范围长收集。请参阅下面的示例文档。我想用日期范围查询startTime字段。

EN

回答 12

Stack Overflow用户

发布于 2017-10-30 06:32:45

由于我在Cloud Firestore上将dueDate字段存储为"timestamp“(而不是stringnumber),因此我这样做是为了获得到期日为2017年的发票文档:

代码语言:javascript
复制
let start = new Date('2017-01-01');
let end = new Date('2018-01-01');

this.afs.collection('invoices', ref => ref
  .where('dueDate', '>', start)
  .where('dueDate', '<', end)
);

注意:日期字段通过dueDate ()对象存储在firebase中。例如:this.doc.dueDate = new Date('2017-12-25')

票数 160
EN

Stack Overflow用户

发布于 2017-10-29 22:45:32

您可以将datetime对象存储为Unix time (自1970年1月1日以来的秒数)。然后您可以像这样简单地使用where select:

collectionRef.where("startTime", ">=", "1506816000").where("startTime", "<=", "1507593600")

顺便说一句--要在你的应用程序中将日期时间转换为Unix时间,你可以使用优秀的(现在已经被废弃的)库moment (如果你正在用js或node构建一些东西)。

票数 31
EN

Stack Overflow用户

发布于 2019-04-27 06:27:57

代码语言:javascript
复制
    var startfulldate = admin.firestore.Timestamp.fromDate(new Date(1556062581000));
    db.collection('mycollection')
      .where('start_time', '<=', startfulldate)
      .get()
      .then(snapshot => {              
            var jsonvalue: any[] = [];
            snapshot.forEach(docs => {
              jsonvalue.push(docs.data())
               })
                 res.send(jsonvalue);
                 return;
                }).catch( error => {
                    res.status(500).send(error)
                });
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47000854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档