node.js - 如何查询实时数据库以获取按时间排序的特定键的对象
问题描述
我有一个事件节点,其中每个事件都有一个队列,其中包含具有特定键的对象。我正在尝试使用我的服务器来获取队列包含特定键的所有事件的键,按时间排序。这是我的数据结构:
{
"events" : {
"6Pl5x3KrDgOPxwEQq5yD" : {
"queue" : {
"aIcQtBOGP4eAgZvxh0emaHGCMNf1" : {
// Details
},
// More queuers
}
},
"08Gnr1pbCQETXeRyRG349" : {
"queue" : {
"8Gnr1pbCQETXeRyRG349" : {
// Details
},
// More queuers
}
}
}
}
因此,如果我正在搜索其队列包含上述aIcQtBOGP4eAgZvxh0emaHGCMNf1
数据中的键的所有事件,我会检索回来6Pl5x3KrDgOPxwEQq5yD
.
如何使用 Node.js 做到这一点?
解决方案
Firebase 数据库可以对运行查询的位置的每个子节点下的已知路径上的属性进行排序/过滤。您正在尝试过滤动态路径,这是不可能的。
您通常需要添加一个额外的数据结构以允许进行您想要的查找,例如以队列 ID 作为键,然后将其事件 ID 作为值的顶级列表。
"events": {
...
},
"queues": {
"aIcQtBOGP4eAgZvxh0emaHGCMNf1": "6Pl5x3KrDgOPxwEQq5yD",
"8Gnr1pbCQETXeRyRG349": "08Gnr1pbCQETXeRyRG349"
}
现在,您可以查找有人排队等待的任何事件。
另见:
推荐阅读
- javascript - 为什么 node.appendChild() 不起作用?
- c# - 如何在 UPDATE 命令的 WHERE 子句中使用三个条件更新单个记录?
- django - 如果我不复制 API 端点,Django Get 请求将返回空数组
- scala - scala 对象组合 - 访问不同类型的嵌套对象字段(例如 Array 与 Option[Int])
- javascript - 如何从 node.js 调用 JSON 中的数组字段
- visual-studio - 在另一个帐户下运行 Visual Studio 2017 时,Windows 身份验证不适用于 IIS Express 10
- activemq - ActiveMQ MessageGroupHashBucket - 需要什么缓存属性?
- python - Python set() 和 list() 函数一起使用
- java - 在 jni 中运行的原生 C 代码与在 Android 中的 shell 中运行的区别
- javascript - 混淆除白名单之外的所有查询参数