SQL की Group by विश्लेषण के समान, MongoDB भी इसे समर्थन करता है। इस अध्याय में देखेंगे कि Golang का उपयोग करके MongoDB डेटा का सांख्यिकीय विश्लेषण कैसे करें।
पूर्वापेक्षित ट्यूटोरियल
कृपया नीचे दिए गए पूर्वापेक्षित ट्यूटोरियल को पढ़ें:
परीक्षण डेटा
आर्डर्स कलेक्शन में डेटा निम्नलिखित है:
{ _id: 1, cust_id: "abc1", ord_date: ISODate("2012-11-02T17:04:11.102Z"), status: "A", amount: 50 }
{ _id: 2, cust_id: "xyz1", ord_date: ISODate("2013-10-01T17:04:11.102Z"), status: "A", amount: 100 }
{ _id: 3, cust_id: "xyz1", ord_date: ISODate("2013-10-12T17:04:11.102Z"), status: "D", amount: 25 }
{ _id: 4, cust_id: "xyz1", ord_date: ISODate("2013-10-11T17:04:11.102Z"), status: "D", amount: 125 }
{ _id: 5, cust_id: "abc1", ord_date: ISODate("2013-11-12T17:04:11.102Z"), status: "A", amount: 25 }
समूहीकरण और सांख्यिकीय
कलेक्शन.Aggregate फ़ंक्शन का उपयोग करके सांख्यिकीय प्रश्न को कैसे संपादित करें।
नीचे MongoDB में सांख्यिकीय विश्लेषण का एक उदाहरण है:
[
{ $match: { status: "A" } }, // पहला स्टेज, क्वेरी मानदंडों के आधार पर डॉक्यूमेंट डेटा की मिलान
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } }, // दूसरा स्टेज, समूहीकरण और सांख्यिकीय
{ $sort: { total: -1 } } // तीसरा स्टेज, परिणामों को क्रमबद्ध करना
]
समकक्ष SQL:
select sum(amount) as total from orders
where status="A"
group by cust_id
order by total desc
इसी को Golang में कैसे प्राप्त करें:
package main
import (
"context"
"fmt"
"log"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
var coll *mongo.Collection
// MongoDB से जुड़ने और कलेक्शन ऑब्ज