首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用LokiJS查询多个表(join)?

如何使用LokiJS查询多个表(join)?
EN

Stack Overflow用户
提问于 2018-02-04 16:19:13
回答 2查看 678关注 0票数 2

由于我无法在node-webkit应用程序中使用SQLite,所以我正在寻找LokiJS,但我似乎找不到一种简单的方法来连接或建立两个数据集之间的某种关系。

一个数据集是艺术家,另一个是媒体。由于它可能容纳5000个艺术家和一百万个媒体,我认为最好是将艺术家作为媒体的子文档来避免重复。另外,如果我修改包含1000个媒体条目的艺术家,将需要大量的编写工作,而不仅仅是更新艺术家数据集中的一个条目。

我找到的唯一连接创建返回的json,如下所示:

代码语言:javascript
运行
复制
Object {
  left: {
    // artists
  },
  right: {
    // media
  }
}

我更喜欢的是更传统的东西,比如:

代码语言:javascript
运行
复制
{
  artist_id:
  artist_name:
  media_id:
  media_title:
}

我看过NeDB,它提供了更简单的连接,但现在已经有两年多没有更新了。我无法让SQLite3为nodewebkit 0.28.0进行编译,也没有得到任何答案。无论如何,LokiJS看起来更有趣,因为它在内存和磁盘中。

那么我如何才能加入艺术家和媒体呢?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-10-18 00:37:46

代码语言:javascript
运行
复制
joinResult.map(data => {
let a = {}
a.artist_id = data.left.artist_id
a.artist_name = data.left.artist_name
a.media_id = data.right.media_id
a.media_title = data.right.media_title
return a
 })

使用lodash进行最终的数据操作。

票数 0
EN

Stack Overflow用户

发布于 2019-03-09 13:42:41

我不认为leftright对象在这里应该是个问题。我使用的代码是

代码语言:javascript
运行
复制
const q = db.card.eqJoin(db.deck, "deckId", "$loki", (l, r) => {
    const {front, back, note, srsLevel, nextReview, tags} = l;
    return {
        front, back, note, srsLevel, nextReview, tags,
        deck: r.name
    };
}).find(query);
const count = q.copy().count();
const data = q.offset(offset).limit(limit).data();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48606109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档