sql >> Database teknologi >  >> NoSQL >> MongoDB

Har jeg brug for mongoose med graphql?

Du kan gøre begge dele.

Hvis du allerede har defineret mongoose-modeller, kan du bruge dem, mens du skriver resolve funktioner. Se det følgende eksempel .

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)
          })
        })
      }
    }
  })
})

Hvis du ikke har mongoose-modeller, eller hvis du vil bruge mongodb native driver, kan du også gøre det. Følgende er et simpelt eksempel på at gøre det ved at bruge MongoDB Node.JS Driver .

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

Hvis du har mongoose-modeller, og du vil generere GraphQL-skema fra dem, kan du være interesseret i graffiti-mongoose , som genererer GraphQL-typer og skemaer fra eksisterende mongoose-modeller.




  1. Hvordan henvises til et indlejret dokument i Mongoid?

  2. MongoDB Mange-til-Mange Association

  3. Find antallet af maksimale fortløbende poster baseret på ét felt i Mongodb Query

  4. hvordan man sammenligner to felter i et dokument i pipeline aggregering (mongoDB)