go - mgo, mongodb: Finding documents that match one field from embedded struct -


विशिष्ट उदाहरण के उदाहरण

हाय ,

mongodb में दस्तावेज़ों को सम्मिलित करने के लिए एमजीओ का उपयोग करके, मैं किसी दस्तावेज़ को किसी अन्य के भीतर एम्बेड करने का प्रयास कर रहा हूं।

एमजीओ के साथ मैं इसके लिए दो स्ट्रेंक्ट्स का उपयोग कर रहा हूं:

  टाइप टेस्ट स्ट्रट {इनटेस्ट सबस्टेस्ट `बीएसन:" इन_स्टेस्ट "`} प्रकार सबटाइस्ट स्ट्रक्चर {टेस्ट 1 स्ट्रिंग `बीएसन:" टेस्ट 1 "टेस्ट 2 स्ट्रिंग` बीएसएन: "टेस्ट 2" `}   

मैं फिर एक दस्तावेज़ डालें:

  test: = test {inTest: सबटेस्ट} {टेस्ट 1: "टेस्ट", टेस्ट 2: "हैलो"}} err = col.Insert (test ) अगर गलती! = शून्य {fmt.Printf ("दस्तावेज़ सम्मिलित नहीं किया जा सकता है:% + v \ n", गलती) os.Exit (1)}  

अब मैं चाहूंगा एम्बेडेड दस्तावेज़ में फ़ील्ड के आधार पर इस दस्तावेज़ को ढूंढने के लिए:

  var परीक्षण [] परीक्षण err = sess.DB ("test")। ("परीक्षण")। एम {"in_test": bson.M {"test1": "test"}})। सभी (और परीक्षण) अगर गलती! = शून्य {fmt.Printf ("दस्तावेजों को ढूंढने में त्रुटि मिली + v \ n") ओएसएक्सिट (1)} एफएमटी.प्रंटफ ("पाया दस्तावेज़:% + v \ n", परीक्षण)  

यह प्रिंट करता है: मिला दस्तावेज़: []

जबकि खोज का उपयोग कर दोनों फ़ील्ड दस्तावेज़ देता है:

  var परीक्षण [] परीक्षण err = sess.DB ("परीक्षण")। सी ("परीक्षण")। खोजें (बीएसएनएम। {"In_test": bson । {"Test1": "test", "test2": "hello"}}) .सभी (और परीक्षण) अगर गलती! = शून्य {fmt.Printf ("दस्तावेजों को ढूंढने में त्रुटि मिली + v \ n"  

यह प्रिंट करता है: मिला दस्तावेज़: [{InTest: {1}} {} टेस्ट 1: परीक्षण टेस्ट 2: हैलो}}]

मैंने दस्तावेज़ को बीएसओएम प्रारूप में डालने की कोशिश की है, लेकिन साथ ही उसी परिणाम के साथ:

  टेस्ट स्ट्रेट {InTest bson.M} bson: "in_test" `} परीक्षा: = परीक्षा {इनटेस्ट: बीएसएनएएम {" test1 ":" test "," test2 ":" हैलो "}} err = col.Instert ( परीक्षण) यदि ग़लती! = शून्य {fmt.Printf ("दस्तावेज़ सम्मिलित नहीं किया जा सकता है:% + v \ n", गलती) os.Exit (1)} var परीक्षण [] परीक्षण err = sess.DB ("परीक्षण") सी। ("परीक्षा")। (बीएसएनएम। एम {"इन_ टेस्ट": बीएसएनएएम {"टेस्ट 1": "टेस्ट"}})। सभी (और परीक्षण) अगर गलती! = शून्य {fmt.Printf ("दस्तावेजों को ढूंढने में त्रुटि मिली + v \ n") ओएसआईटी (1)} एफएमटी.प्रंटफ ("मिली दस्तावेज़:% + v \ n", परीक्षण)   

फिर से प्रिंटिंग: मिला दस्तावेज़: [] या मिला दस्तावेज़: [{InTest: map [test1: test test2: hello]}] if दोनों क्षेत्रों को खोजना

मैं एक एम्बेडेड स्ट्रक्चर / डॉक्यूमेंट में एक फ़ील्ड से मेल खाने वाला एक दस्तावेज़ कैसे प्राप्त करूं?

धन्यवाद अग्रिम में!

आपका प्रारंभिक सवाल भ्रामक था, आपको उप-दस्तावेज से मेल खाना चाहिए:

  func main () {sess, err: = mgo । डायल ("स्थानीयहोस्ट") अगर ग़लती! = शून्य {fmt.printf ("मोंगो से कनेक्ट नहीं किया जा सकता, त्रुटि% v \ n", गलती करें) os.Exit (1)} col: = sess.DB (" परीक्षण ")। सी (" परीक्षा ") परीक्षा: = परीक्षा {इनटेस्ट: सबस्टेस्ट} {टेस्ट 1:" टेस्ट ", टेस्ट 2:" हैलो "}} err = col.Instert (परीक्षण) अगर गलती! = शून्य {fmt.Printf ( "दस्तावेज सम्मिलित नहीं किया जा सकता है:% + v \ n", गलती) os.Exit (1)} var परीक्षण [] परीक्षण err = col.Find (bson.m {"i N_test.test2 ":" हैलो "})। सभी (और परीक्षण) fmt.Println (परीक्षण)}  

Comments

Popular posts from this blog

winforms - C# Form - Property Change -

c# - NewtonSoft JArray - how to select multiple elements with LINQ -

javascript - amcharts makechart not working -