तो आपका एकत्रीकरण वास्तव में सभी comment
returns लौटाता है resultField
में दस्तावेज़ फ़ील्ड, जिसमें परोक्ष रूप से परिणामों की संख्या शामिल है, यह एक टुकड़ा है जिसमें आप बिल्टिन len()
का उपयोग करके गो में लंबाई की जांच कर सकते हैं समारोह।
चूंकि आपको केवल लंबाई की आवश्यकता है (comment
. की संख्या दस्तावेज़), इसलिए आप केवल इस सरणी के आकार को पुनः प्राप्त करना चाहते हैं। उस उद्देश्य के लिए आप $addFields
का इस्तेमाल कर सकते हैं
resultField
. को बदलने के लिए चरण इस सरणी की लंबाई वाली संख्या के साथ सरणी।
pipe := c.Pipe([]bson.M{
{
"$lookup": bson.M{
"from": "comment",
"localField": "_id",
"foreignField": "post_id",
"as": "resultField",
},
},
{
"$addFields": bson.M{
"resultField": bson.M{"$size": "$resultField"},
},
},
})
ध्यान दें कि $addFields
स्टेज एक $project
. के बराबर है चरण जो इनपुट दस्तावेज़ों में सभी मौजूदा फ़ील्ड को स्पष्ट रूप से निर्दिष्ट करता है और नए फ़ील्ड जोड़ता है। केवल MongoDB संस्करण 3.4 के बाद से उपलब्ध है।