如果只有某些集合具有我需要过滤掉的特定 属性,我如何从 FaunaDb 查询数据
How can I query data from FaunaDb if only some collections have a specific property which I need to filter out
我真的是 FaunaDb 的新手,我目前有一个用户集合和该集合中的一个索引:(users_waitlist),它的字段较少。
创建新用户时,“waitlist_meta”属性 最初是一个空数组,当该用户更新以加入等待列表时,新字段将添加到用户的 waitlist_meta大批。
现在,我试图只获取包含添加到 waitlist_meta 数组的项目的集合(顺便说一句,这是对另一个索引(产品)的引用)。换句话说:如果数组包含项目,则 return collection/index
我怎样才能做到这一点?通过 运行 这个查询:
Paginate(Match(Index('users_waitlist')))
显然,我仍然使用空数组 (waitlist_meta: [])
获取所有集合
提前致谢
您需要将术语添加到您的索引中,这些术语会进行简要说明 here。
我发现将其概念化的有用方式是,当您将术语添加到索引时,它会被划分到单独的存储桶中,以便稍后当您将该索引与特定术语匹配时,该特定存储桶的结果是 returned.
这里的情况稍微复杂一些,因为您需要将您的实际字段(waitlist_meta
的实际值)转换为其他内容(waitlist_meta
是否已定义?) - 在动物群中称为绑定。你需要一些类似的东西:
CreateIndex({
"name": "users_by_is_on_waitlist",
"source": [{
"collection": Collection("users"),
"fields": {
"isOnWaitlist": Query(Lambda("doc", ContainsPath(["data", "waitlist_meta"], Var("doc"))))
}
}],
"terms": [{
"binding": "isOnWaitlist"
}]
})
这个绑定的作用是运行一个Lambda
集合中的每个文档根据文档的字段计算一个属性,在我们的例子中是isOnWaitlist
, 由文档是否包含字段 waitlist_meta
来定义。然后我们将这个绑定作为一个术语添加到索引中,这意味着我们稍后可以查询索引:
Paginate(Match("users_by_is_on_waitlist", true))
这里的 true
是我们索引的单个术语(如果我们的索引有多个术语,它可以是一个数组)。此查询现在应该 return 所有已添加到候补名单的用户!
我真的是 FaunaDb 的新手,我目前有一个用户集合和该集合中的一个索引:(users_waitlist),它的字段较少。 创建新用户时,“waitlist_meta”属性 最初是一个空数组,当该用户更新以加入等待列表时,新字段将添加到用户的 waitlist_meta大批。 现在,我试图只获取包含添加到 waitlist_meta 数组的项目的集合(顺便说一句,这是对另一个索引(产品)的引用)。换句话说:如果数组包含项目,则 return collection/index 我怎样才能做到这一点?通过 运行 这个查询:
Paginate(Match(Index('users_waitlist')))
显然,我仍然使用空数组 (waitlist_meta: [])
获取所有集合提前致谢
您需要将术语添加到您的索引中,这些术语会进行简要说明 here。
我发现将其概念化的有用方式是,当您将术语添加到索引时,它会被划分到单独的存储桶中,以便稍后当您将该索引与特定术语匹配时,该特定存储桶的结果是 returned.
这里的情况稍微复杂一些,因为您需要将您的实际字段(waitlist_meta
的实际值)转换为其他内容(waitlist_meta
是否已定义?) - 在动物群中称为绑定。你需要一些类似的东西:
CreateIndex({
"name": "users_by_is_on_waitlist",
"source": [{
"collection": Collection("users"),
"fields": {
"isOnWaitlist": Query(Lambda("doc", ContainsPath(["data", "waitlist_meta"], Var("doc"))))
}
}],
"terms": [{
"binding": "isOnWaitlist"
}]
})
这个绑定的作用是运行一个Lambda
集合中的每个文档根据文档的字段计算一个属性,在我们的例子中是isOnWaitlist
, 由文档是否包含字段 waitlist_meta
来定义。然后我们将这个绑定作为一个术语添加到索引中,这意味着我们稍后可以查询索引:
Paginate(Match("users_by_is_on_waitlist", true))
这里的 true
是我们索引的单个术语(如果我们的索引有多个术语,它可以是一个数组)。此查询现在应该 return 所有已添加到候补名单的用户!