sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Necesito mangosta con graphql?

Puedes hacer ambas cosas.

Si ya tiene modelos de mangosta definidos, puede usarlos mientras escribe resolve funciones Consulte el siguiente ejemplo .

var QueryType = new GraphQLObjectType({  
  name: 'Query',
  fields: () => ({
    todos: {
      type: new GraphQLList(TodoType),
      resolve: () => {
        return new Promise((resolve, reject) => {
          TODO.find((err, todos) => {
            if (err) reject(err)
            else resolve(todos)
          })
        })
      }
    }
  })
})

Si no tiene modelos mongoose o si desea usar el controlador nativo mongodb, también puede hacerlo. El siguiente es un ejemplo simple de hacerlo usando MongoDB Node.JS Driver .

resolve: () => {
  return new Promise((resolve, reject) => {
    db.collection('todos').find({}).toArray((err, todos) => {
      if (err) reject(err)
      else resolve(todos)
    })
  })
}

Si tiene modelos de mangosta y desea generar un esquema GraphQL a partir de ellos, puede estar interesado en graffiti-mongoose , que genera tipos y esquemas de GraphQL a partir de modelos de mongoose existentes.