javascript – Firebase – 获取包含的所有数据

我有一个firebase模型,每个对象看起来像这样:

done: boolean
|
tags: array
|
text: string

每个对象的标记数组可以包含任意数量的字符串.

如何获取具有匹配标记的所有对象?例如,查找标记包含“email”的所有对象.

许多更常见的搜索方案(例如按属性搜索(因为您的标记数组将包含)将随着API的不断扩展而融入Firebase.

与此同时,你自己也可以成长.根据您的问题,一种方法是简单地使用匹配的记录列表“索引”标记列表:

/tags/$tag/record_ids...

然后,要搜索包含给定标记的记录,您只需对标记列表进行快速查询:

new Firebase('URL/tags/'+tagName).once('value', function(snap) {
    var listOfRecordIds = snap.val();
});

这是一个非常常见的NoSQL口头禅 – 在初始写入中投入更多精力,以便以后轻松读取.它也是一种常见的denormalization方法(并且一个大多数SQL数据库在内部使用,在更复杂的级别上).

另请参阅Frank提到的帖子,因为这将有助于您扩展到更高级的搜索主题.

https://stackoverflow.com/questions/22510007/firebase-get-all-data-that-contains

转载注明原文:javascript – Firebase – 获取包含的所有数据