1
因此,我嘗試做的事情是使用GraphQL從數據庫(在我的情況下是MongoDB)中檢索過濾的數據。如何使用過濾器定義和執行GraphQL查詢
在「MySQL語言」中講述如何在GraphQL中實現where
子句?
我遵循這個教程: 與濾波器https://learngraphql.com/basics/using-a-real-data-source/5
查詢被這樣定義:
const Query = new GraphQLObjectType({
name: "Queries",
fields: {
authors: {
type: new GraphQLList(Author),
resolve: function(rootValue, args, info) {
let fields = {};
let fieldASTs = info.fieldASTs;
fieldASTs[0].selectionSet.selections.map(function(selection) {
fields[selection.name.value] = 1;
});
return db.authors.find({}, fields).toArray();
}
}
}
});
這裏棘手的部分是在resolve
功能的info
參數。幾點說明我已經在這裏找到:http://pcarion.com/2015/09/26/graphql-resolve/
所以這是AST(抽象語法樹)
任何人都可以請提供一些基本的現實生活中的例子代碼,將展示如何定義和執行的以下查詢: 獲取所有作者的名字==約翰
謝謝!
作爲一個小概覽什麼其他過濾器/參數是可能的,這裏是一個文章中,我們如何使用參數在Graphcool來實現過濾器:https://www.graph.cool/docs/tutorials/designing-powerful-apis -with-graphql查詢參數,aing7uech3 – marktani