これは私のmongoDBのサンプルドキュメントです。 Apollo/GraphQL経由でcontent.en
配列を取得する必要があります。しかし、ネストされたオブジェクトは私のために問題を起こしています。 en
は言語タグなので、これを変数として使用することができれば素晴らしいでしょう。 graphQL結果がでなければなりませんMongoDBのでApollo/GraphQL:ネストされた要素を取得するには?
データ
{
"_id" : "9uPjYoYu58WM5Tbtf",
"content" : {
"en" : [
{
"content" : "Third paragraph",
"timestamp" : 1484939404
}
]
},
"main" : "Dn59y87PGhkJXpaiZ"
}
:
{
"data": {
"article": [
{
"_id": "9uPjYoYu58WM5Tbtf",
"content": [
{
"content" : "Third paragraph",
"timestamp" : 1484939404
}
]
}
]
}
}
ことを意味し、私はIDと言語固有のコンテンツの配列を取得する必要があります。
タイプ
const ArticleType = new GraphQLObjectType({
name: 'article',
fields: {
_id: { type: GraphQLID },
content: { type: GraphQLString }
}
})
GraphQLスキーマ
export default new GraphQLSchema({
query: new GraphQLObjectType({
name: 'RootQueryType',
fields: {
article: {
type: new GraphQLList(ArticleType),
description: 'Content of article dataset',
args: {
id: {
name: 'id',
type: new GraphQLNonNull(GraphQLID)
}
},
async resolve ({ db }, args) {
return db.collection('articles').find({ main: args.id }).toArray()
}
}
}
})
})
Q:私は次のセットアップを取得しています何
しかし、これではありません、 content: { type: GraphQLString }
:ueryで
{
article(id: "Dn59y87PGhkJXpaiZ") {
_id,
content
}
}
結果
{
"data": {
"article": [
{
"_id": "9uPjYoYu58WM5Tbtf",
"content": "[object Object]"
}
]
}
}
正確にクエリを返すように期待しますか?それをあなたの質問に追加できますか? – DevNebulae
@DevNebulae私はすでにそれを投稿しました。 2番目のコードブロックを参照してください。 "graphQLの結果は" – user3142695
"でなければなりません。私は、root解決の記事をフィルタリングするid引数とsub resolveのコンテンツをフィルタする言語引数が必要だと思います。したがって、mongo queryは、すべての言語コンテンツを持つidのすべての一致する記事を返し、graphqlは言語argに基づいてコンテンツを返します。また、コンテンツをスキーマにマップします。 – Veeram