我正在Quasar/Electron中开发一个应用程序,并在我的数据库中使用Dexie/IndexedDB。我想在数据库中找到包含我的事件ID和狗ID(都是键索引字段)的所有不同记录。我可以使用以下代码完成此操作:
await myDB.runTable
.orderBy('[fk_event+fk_dog]')
.eachUniqueKey((theDuo) => {
this.runsArray.push({eventID: theDuo[0], dogID: theDuo[1]})
})
我使用的是组合键,运行良好。但是,我需要更多的记录,而不仅仅是键。我需要更多的字段,这可能吗?
我试图在使用where函数的同时使用唯一键函数获取记录,但似乎不起作用。
我需要得到所有独特的(distinct?)在表中的狗是在一个特定的事件。也得到他们相应的信息。我不知道是否有一个更好的,更有效的方法来做到这一点?我总是可以取出所有的记录,并循环通过他们来建立一个自定义数组,我只是希望在表读取级别上这样做。(是的,我仍然在表/记录中,即使这些是集合等:p)。
即使上面的代码给了我所有的事件,我也可以用一个过滤器提取出我需要的东西。我只是在想,在读取级别做这件事会更快更有效。
this.enteredRuns = this.runsArray.filter((theEvent) => {
return ( (theEvent.eventID == this.currentEventID) )
})
1条答案
按热度按时间vfhzx4xs1#
尝试
我知道这是没有记录,但它应该做的工作,使用独特的光标,同时仍然提取整个对象,而不仅仅是键。你不能与
where
合并,但你可以使用.filter
。只是要注意,不是所有的记录都被扫描,因为它会跳过记录与相同的键-选择第一次访问的记录只。