MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Brauche ich Mungo mit graphql?

Sie können beides tun.

Wenn Sie bereits Mongoose-Modelle definiert haben, können Sie diese beim Schreiben von resolve verwenden Funktionen. Siehe folgendes Beispiel .

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

Wenn Sie keine Mongoose-Modelle haben oder den nativen Mongodb-Treiber verwenden möchten, können Sie das auch tun. Im Folgenden finden Sie ein einfaches Beispiel für die Verwendung des MongoDB Node.JS-Treibers .

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

Wenn Sie Mongoose-Modelle haben und daraus ein GraphQL-Schema generieren möchten, könnten Sie an graffiti-mongoose interessiert sein , das GraphQL-Typen und -Schemas aus bestehenden Mongoose-Modellen generiert.