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

ढूँढें() के परिणामस्वरूप टुकड़ा पाने का कोई तरीका है?

MongoDB का परिणाम find() हमेशा दस्तावेजों की एक सूची है। इसलिए यदि आप मानों की एक सूची चाहते हैं, तो आपको इसे मैन्युअल रूप से वैसे ही बदलना होगा जैसे आपने किया था।

कस्टम प्रकार का उपयोग करना (string . से व्युत्पन्न) )

यह भी ध्यान दें कि यदि आप अपना खुद का प्रकार (string . से व्युत्पन्न) बनाएंगे ), आप इसके अनमर्शलिंग लॉजिक को ओवरराइड कर सकते हैं, और केवल username . को "एक्सट्रेक्ट" कर सकते हैं दस्तावेज़ से।

यह इस तरह दिख सकता है:

type Username string

func (u *Username) SetBSON(raw bson.Raw) (err error) {
    doc := bson.M{}
    if err = raw.Unmarshal(&doc); err != nil {
        return
    }
    *u = Username(doc["username"].(string))
    return
}

और फिर उपयोगकर्ता नामों को एक स्लाइस में क्वेरी करना:

c := mongodb.DB("mybase").C("mycollection") // Obtain collection

var uns []Username
err = c.Find(nil).Select(bson.M{"username": 1, "_id": 0}).All(&uns)
if err != nil {
    fmt.Println(err)
}
fmt.Println(uns)

ध्यान दें कि []Username []string . के समान नहीं है , तो यह आपके लिए पर्याप्त हो भी सकता है और नहीं भी। क्या आपको string . के मान के रूप में उपयोगकर्ता नाम की आवश्यकता है? username . के बजाय परिणाम संसाधित करते समय, आप बस एक username . को रूपांतरित कर सकते हैं करने के लिए string

Query.Iter() का उपयोग करना

स्लाइस कॉपी करने से बचने का एक और तरीका यह होगा कि Query.Iter() , परिणामों पर पुनरावृति करें और username . निकालें और संग्रहीत करें मैन्युअल रूप से, इसी तरह उपरोक्त कस्टम अनमर्शलिंग लॉजिक कैसे करता है।

यह इस तरह दिख सकता है:

var uns []string
it := c.Find(nil).Select(bson.M{"username": 1, "_id": 0}).Iter()
defer it.Close()
for doc := (bson.M{}); it.Next(&doc); {
    uns = append(uns, doc["username"].(string))
}
if err := it.Err(); err != nil {
    fmt.Println(err)
}
fmt.Println(uns)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सरणी (उल्का/मोंगो) से पहले मिलान करने वाले उप-दस्तावेज़ ढूंढें और वापस करें

  2. mongoDB जावा ड्राइवर लॉगिंग को अक्षम कैसे करें?

  3. मोंगोडब अपडेट में एक चर का उपयोग करना

  4. MongoDb:कई इनपुट निर्देशांक के लिए $geoIntersects

  5. एक अद्भुत MongoDB GUI टूल को परिभाषित करने में सहायता करें