MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मैं Mongoose मॉडल बनाए बिना Mongoose और MongoDB के साथ GraphQL का उपयोग कैसे करूं

आपको देखना चाहिए GraphQL-to-MongoDB, या मैंने कैसे चिंता करना बंद करना सीखा और जेनरेट की गई क्वेरी API को पसंद किया . यह एक मिडलवेयर पैकेज के बारे में बात करता है जो आपके ग्राफक्यूएल एपीआई को उत्पन्न करने के लिए ग्राफक्यूएल के प्रकारों का लाभ उठाता है और क्लाइंट से मोंगोडीबी प्रश्नों में भेजे गए अनुरोधों को पार्स करता है। यह कमोबेश नेवला पर छोड़ देता है।

अस्वीकरण:यह मेरा ब्लॉग पोस्ट है।

पैकेज आपके स्कीमा फ़ील्ड args के लिए GraphQL इनपुट प्रकार उत्पन्न करता है, और उन्हें MongoDB प्रश्नों में पार्स करने के लिए समाधान फ़ंक्शन के चारों ओर लपेटता है।

एक साधारण GraphQLType दिया गया:

const PersonType = new GraphQLObjectType({
    name: 'PersonType',
    fields: () => ({
        age: { type: GraphQLInt },
        name: {
            type: new GraphQLNonNull(new GraphQLObjectType({
                name: 'NameType',
                fields: () => ({
                    firstName: { type: GraphQLString },
                    lastName: { type: GraphQLString }
                })
            }))
        }
    })
}); 

सबसे आम उपयोग के मामले के लिए, आप GraphQL स्कीमा में एक getMongoDbQueryResolver के साथ एक फ़ील्ड बनाएंगे और getGraphQLQueryArgs . filter , projection , और options रैपर द्वारा प्रदान किया गया सीधे खोज समारोह में भेजा जा सकता है।

person: {
    type: new GraphQLList(PersonType),
    args: getGraphQLQueryArgs(PersonType),
    resolve: getMongoDbQueryResolver(PersonType,
        async (filter, projection, options, source, args, context) =>
            await context.db.collection('person').find(filter, projection, options).toArray()
    )
}

एक क्वेरी का एक उदाहरण जिसे आप ऐसे क्षेत्र में भेज सकते हैं:

{
    person (
        filter: {
            age: { GT: 18 },
            name: { 
                firstName: { EQ: "John" } 
            }
        },
        sort: { age: DESC },
        pagination: { limit: 50 }
    ) {
        name { 
            lastName
        }
        age
    }
}

उत्परिवर्तन क्षेत्रों के लिए एक आवरण और तर्क प्रकार जनरेटर भी है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो $addToSet a Array

  2. pymongo में find_one का उपयोग करके नवीनतम रिकॉर्ड कैसे प्राप्त करें

  3. मोंगो - क्वेरी, एंबेडेड दस्तावेज़ डॉट नोटेशन को छोड़कर मेल नहीं खाता

  4. मैं गोलंग और एमजीओ लाइब्रेरी के साथ मोंगोडब में टेक्स्ट इंडेक्स कैसे बना सकता हूं?

  5. नेवला की समय सीमा समाप्त संपत्ति ठीक से काम नहीं कर रही है