首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Javascript中通过Skygear引用保存的记录进行查询

如何在Javascript中通过Skygear引用保存的记录进行查询
EN

Stack Overflow用户
提问于 2017-08-28 11:41:41
回答 1查看 43关注 0票数 0

我正在尝试使用skygear-SDK-JS https://github.com/SkygearIO/skygear-SDK-JS在两种记录类型之间创建一对一的关系,并遵循https://docs.skygear.io/guides/cloud-db/data-types/js/指南使用Reference保存记录。正如指南中所写的,Skygear服务器将为我创建外键约束。

但是,我不知道如何使用Reference调用skygear.query接口。

例如,使用从指南中复制的以下代码。

代码语言:javascript
复制
const note1 = new Note({
  heading: 'Specification',
  content: 'This is first section',
});
const note2 = new Note({
  heading: 'Specification page 2',
  content: 'This is second section',
});
note1.nextPage = new skygear.Reference(note2);
skygear.publicDB.save([note2, note1]);

现在我想要找到Note,这个nextPageheadingSpecification page 2,我应该如何构造query对象?

EN

回答 1

Stack Overflow用户

发布于 2017-08-28 14:06:48

要使用引用查询Skygear记录,只需构造一个在引用列上具有equalTo谓词的查询对象,如下所示:

代码语言:javascript
复制
let query = new skygear.Query(Note);
query.equalTo('nextPage', new skygear.Reference({
  id: 'note/uuid-of-note2'
}));
skygear.publicDB.query(query).then((notes) => {
  console.log(notes[0]); // You should got note1
});

在你的用例中,下面的代码应该可以工作。

代码语言:javascript
复制
let query = new skygear.Query(Note);
query.equalTo('heading', 'Specification page 2');
skygear.publicDB.query(query).then((notes) => {
  let refQuery = new skygear.Query(Note);
  refQuery.equalTo('nextPage', new skygear.Reference(notes[0]));
  skygear.publicDB.query(refQuery).then((result) => {
    console.log(result);
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45911516

复制
相关文章

相似问题

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