¿Cómo diseñar la siguiente resolución para el servidor GraphQL?

Estoy usando react-apollo en meteorito con mysql y secuela, todavía soy un principiante en JS. Supongamos que tengo la siguiente función de resolución en mi servidor Apollo:

 export default resolvers = {
     Query: {
         posts(_, args){
             return Post.findAndCountAll({ where: args   });
         },
         numberOfPosts(){
             return /// the number of selected posts
         }
     }

Me gustaría seleccionar algunos datos de la base de datos donde se cumplen algunas condiciones y luego contar la cantidad de filas seleccionadas y devolverlas en el campo "numberOfPosts".findAndCountAll() devuelve un objeto, que contiene las filas seleccionadas y el recuento. Me gustaría obtener mipost() para devolver solo las filas seleccionadas, y my numberOfPosts () para devolver solo el recuento de las publicaciones seleccionadas. En este momento, ambos son devueltos por posts ().

Mi esquema es:

 type Post {
  id: Int
  date: Float
  text: String
}

 type NumberOfPosts{
  total: Int
  filtered: Int
}

type Query {
  posts(
   id: Ind,
   offset: Int,
   limit: Int,
   filter: String): [Post]
  numberOfPosts:[NumberOfPosts] 
}

schema {
  query: Query
}

El objetivo es recibir datos en el siguiente formato:

{
  "data": {
    "numberOfPosts": [
      {
        "total": 1000,
        "filtered": 21
      }
    ],
    "posts": [
      {
        "id": 4,
        "date": 5105626122,
        "text": "jzybiwutudi"
      },
      ...
    ]
  }
}

Mi trabajo hasta ahora: Prueba 1:

  let selectedCount;
export default resolvers = {
    Query: {
        posts(_, args){
            return Post.findAndCountAll({where: args}).then(
                function (results) {
                    selectedCount = results.count;
                    return results.rows
                });
        },
        numberOfPosts(){
            return selectedCount
        }
    }}

Así que estoy definiendo una variable de ayuda fuera de los resolvers, y la configuro en el número de filas seleccionadas, luego el conteo se devuelve ennumberOfPosts(), que funciona, pero el problema con esto es,return results.rows causa un error, y no entiendo por qué.

otro problema es queselectedCount es siempre el número anterior de filas

Prueba 2

Otra solución que parece funcionar es pasar los argumentos dos veces a la consulta GraphQL, así:

{
  numberOfPosts(filter: "example") {
    total
    filtered
  }
  posts(filter: "example") {
    id
    date
    text
  }
}

Luego, ambas funciones de resolución conocen los mismos argumentos, por lo que puedo seleccionar y contar las mismas publicaciones. Pero esto no me parece correcto, ya que tengo que pasar los mismos argumentos dos veces, también se transmitirán dos veces ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta