Mat*_*son 46 javascript firebase
有没有一种快速的方法来使用Firebase执行数据库样式的查询?
例如:
给定一个火力点参考users与领域user_id,name以及age什么是做类似这样的查询的最佳方式:
SELECT name FROM users WHERE `user_id`=147;
Run Code Online (Sandbox Code Playgroud)
和
SELECT COUNT(*) FROM users WHERE age=21;
Run Code Online (Sandbox Code Playgroud)
Mic*_*uer 70
一般来说,没有.Firebase本质上是一个"实时数据库",随着数据的变化不断向您传输更新,因此进行通用查询更加困难.目前,提供了一些(公认有限的)查询原语.请参阅文档中的查询/限制页面.
您通常可以通过各种方法解决这些限制:
我们打算随着时间的推移对此进行改进,因为我们发现与传统关系数据库系统提供的灵活查询相比,这是一个弱点.
Kat*_*ato 24
Lehenbauer先生当然是Firebase所有东西的主人,所以听他说.;)然而,这个特别的主题是我已经劳动了几个星期的话题.
以下是我的一些想法,以增强"运行单独的服务器"和"客户端查询"响应:
ElasticSearch(node.js脚本)
使用服务器上的node.js脚本,您可以集成ElasticSearch并在一小时内提供一些可靠的内容搜索.这是一篇博客文章和一篇免费提供的文章:https://www.firebase.com/blog/2014-01-02-queries-part-two.html
可缓存/常见查询
这些可以由服务器/ cron进程处理,该进程读取表并复制数据.例如,假设我想在注册期间为用户的登录名显示"不可用/可用",但出于某些复杂的原因,用不同的唯一ID存储用户记录.
我的cron/server可以读取users表中的所有记录,然后将它们插入到另一个通过电子邮件地址存储的表中,其中包含用户记录ID的值(或者我可能想知道的任何其他数据).
这种重复数据方法是一种手动缓存技术,是No-SQL环境中的常见做法.我们正在交换存储空间(假设它便宜且可用),以提高速度和简化流程.
自定义查询(使用队列)
自定义查询可以通过XHR(ajax)直接发送到服务器,这可以节省大量工作并返回更好的结果.或者,您可以利用Firebase利用队列连接服务器后端.
客户端将查询请求作为JSON放入一个名为的特殊Firebase表中,queue并等待响应.
服务器queue.on('child_added', ...)使用`queue_record.child('response',... data here ...)监听并提供数据.
这有一些很好的优点.例如,任何数量的服务器都可以监听并提供响应,使负载平衡变得轻而易举.这个代码非常简单,在SO中设置和覆盖另一个线程.
希望这有用!
| 归档时间: |
|
| 查看次数: |
22108 次 |
| 最近记录: |