按键查询和日期排序
Query by key and order by date
我有一个数据库,其中有很多 "listings" 结构如下:
我想获得 10 个列表,以某个优先级值开始或结束,大小值(子节点)范围在 9 到 10.5 之间,并按日期排序结果。
我查看了大量 SO 帖子和 Firebase 示例,但我似乎找不到任何解决方案。
在 Firebase 中真的不可能做到这一点吗?据我所知,这是一个很常见的用例。
有什么解决办法吗?如果没有,您将如何解决?
您可能需要查看 Firebase 文档中的 Complex Queries。
查看范围查询。 startAt()
和 endAt()
允许您通过设置查询的起点和终点来查找特定尺码的鞋子。
例如,如果我们要查找介于 9
和 10.5
之间的所有鞋子,请组合 orderByChild()
、startAt
和 endAt
。类似于:
var ref = new Firebase(URL);
ref.orderByChild("timestamp").startAt("9").endAt("10.5").on("child_added", function(snapshot) {
console.log(snapshot.key());
});
如果您能提供代码示例,则可以更轻松地找到解决方案。如果您想通过多个键对查询进行排序,您可能需要调整数据模型。
我有一个数据库,其中有很多 "listings" 结构如下:
我想获得 10 个列表,以某个优先级值开始或结束,大小值(子节点)范围在 9 到 10.5 之间,并按日期排序结果。
我查看了大量 SO 帖子和 Firebase 示例,但我似乎找不到任何解决方案。
在 Firebase 中真的不可能做到这一点吗?据我所知,这是一个很常见的用例。
有什么解决办法吗?如果没有,您将如何解决?
您可能需要查看 Firebase 文档中的 Complex Queries。
查看范围查询。 startAt()
和 endAt()
允许您通过设置查询的起点和终点来查找特定尺码的鞋子。
例如,如果我们要查找介于 9
和 10.5
之间的所有鞋子,请组合 orderByChild()
、startAt
和 endAt
。类似于:
var ref = new Firebase(URL);
ref.orderByChild("timestamp").startAt("9").endAt("10.5").on("child_added", function(snapshot) {
console.log(snapshot.key());
});
如果您能提供代码示例,则可以更轻松地找到解决方案。如果您想通过多个键对查询进行排序,您可能需要调整数据模型。