图库结构
type.grahql
#学生信息
type Student {
id: ID! #id
name: String! @search(by: [hash regexp]) #姓名
classes: String! @search(by: [hash regexp]) #班级
sex:Int! @search #性别 0男 1女
rank: Int @search #排名
old: Int @search #年龄
}
1. 查询
1.1简单查询
//studentGraphql.vue
<script>
import gql from "graphql-tag";
//sql语句
export default {
fragments: {
getStudent: gql`
query Student(
$filter: StudentFilter
$offset: Int
$first: Int
) {
//计算学生总数
aggregateStudentCount(filter: $filter) {
count
}
//学生相关属性
queryStudent(
filter: $filter
order: { desc: created }
offset: $offset
first: $first
) {
id
name
classes
sex
rank
old
}
}
`,
},
};
</script>
//在vue中获取
studentList:[] //存储学生列表
getStudent(){
//传入gql的参数格式
var studentVariables = {
//filter对应queryStudent下的参数
filter: {
id: [this.id],
name: {
}
}
};
if(this.name){
//eq为普通索引,一般赋值时需带上,即 name:{eq:"小明"}
//id例外,直接用[],如:id:['x01']
studentVariables.filter.name.eq = this.name
}
this.$apollo.addSmartQuery("studentList", {
//no-cache:清空缓存,刷新表格时不会因为缓存而不更新表格内容
fetchPolicy: "no-cache",
query: studentGraphql.fragments.getStudent,
variables