私はコーディングを学んでおり、現在、CMS として Sanity を使用した小さなペット プロジェクトの段階にいます。簡単に言うと、API を作成して、カクテルへの投票でカクテル データを取得しようとしています。投票は、投票した人に保存されます。
GROQ クエリ
*[
_type == "cocktail" &&
!(_id in path('drafts.**'))
] {
name,
_id,
"votes" : *[_type == "person" && references(^._id)] {
votes[] {
score,
"id": cocktail._ref
}
}
}
返す
[
{
"_id": "pdUGiuRzgLGpnc4cfx76nA",
"name": "Cuba Libre",
"votes": [
{
"votes": {
"id": "pdUGiuRzgLGpnc4cfx76nA",
"score": 2
}
},
{
"votes": {
"id": "pdUGiuRzgLGpnc4cfx76nA",
"score": 2
}
}
]
},
{
"_id": "pdUGiuRzgLGpnc4cfxBOyM",
"name": "The ERSH7",
"votes": []
}
]
ご覧のとおり、マージは投票の埋め込み配列を提供しますが、次のようなものが必要です。
[{
...cocktail attributes...
"votes" : [
{score: 2, id: pdUGiuRzgLGpnc4cfx76nA},
{score: 2, id: pdUGiuRzgLGpnc4cfx76nA}
]
}
... more cocktails....
]
これを取得しようとして、クエリを変更しました:
*[
_type == "cocktail" &&
!(_id in path('drafts.**'))
] {
name,
_id,
"votes" : *[_type == "person" && references(^._id)].votes[] {
score,
"id": cocktail._ref
}
}
これは、arr の投票のすべての要素から射影する必要があります。残念ながら、空の配列を取得します:
[
{
"_id": "pdUGiuRzgLGpnc4cfx76nA",
"name": "Cuba Libre",
"votes": [
{},
{}
]
}
...more cocktails
]
どうすれば望ましい結果を得ることができますか? 読んでくれてありがとう!助けていただければ幸いです!