MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Ai-je besoin de mangouste avec graphql ?

Vous pouvez faire les deux.

Si vous avez déjà défini des modèles de mangouste, vous pouvez les utiliser lors de l'écriture de resolve les fonctions. Voir l'exemple suivant .

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 vous n'avez pas de modèles de mangouste ou si vous souhaitez utiliser le pilote natif mongodb, vous pouvez également le faire. Voici un exemple simple de le faire en utilisant 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 vous avez des modèles de mangouste et que vous souhaitez générer un schéma GraphQL à partir de ceux-ci, vous pourriez être intéressé par graffiti-mongoose , qui génère des types et des schémas GraphQL à partir de modèles de mangouste existants.