Computer >> Máy Tính >  >> Lập trình >> MongoDB

Sử dụng MongoDB lồng nhau $ group và $ sum để tính số lượng cổ phiếu có ProductID tương tự?


Nhóm $ trong MongoDB được sử dụng để nhóm các tài liệu đầu vào theo biểu thức _id được chỉ định. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo466.insertOne (... {...... "ProductPrice":150, ... "ProductQuantity":1, ... "ProductName":"Product-1", .. . "ActualAmount":110, ... "ProductProfit":40, ... "ProductId":1 ...} ...); {"nition ":true," insertId ":ObjectId (" 5e80477cb0f3fa88e2279066 ") }>> db.demo466.insertOne (... {...... "ProductPrice":150, ... "ProductQuantity":1, ... "ProductName":"Product-1", ... "ActualAmount":110, ... "ProductProfit":40, ... "ProductId":2 ...} ...); {"nition ":true," insertId ":ObjectId (" 5e80477db0f3fa88e2279067 ")}> db.demo466.insertOne (... {...... "ProductPrice":170, ... "ProductQuantity":2, ... "ProductName":"Product-2", ... "ActualAmount ":130, ..." ProductProfit ":50, ..." ProductId ":3 ...} ...); {"nition":true, "insertId":ObjectId ("5e80477eb0f3fa88e2279068")}  

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo466.find (); 

Điều này sẽ tạo ra kết quả sau -

 {"_id":ObjectId ("5e80477cb0f3fa88e2279066"), "ProductPrice":150, "ProductQuantity":1, "ProductName":"Product-1", "ActualAmount":110, "ProductProfit":40, " ProductId ":1} {" _id ":ObjectId (" 5e80477db0f3fa88e2279067 ")," ProductPrice ":150," ProductQuantity ":1," ProductName ":" Product-1 "," ActualAmount ":110," ProductProfit ":40 , "ProductId":2} {"_id":ObjectId ("5e80477eb0f3fa88e2279068"), "ProductPrice":170, "ProductQuantity":2, "ProductName":"Product-2", "ActualAmount":130, "ProductProfit" :50, "ProductId":3} 

Sau đây là truy vấn sử dụng $ group và $ sum lồng nhau trong MongoDB -

> db.demo466.aggregate ([... {... '$ group':{... '_id':{... 'ProductName':'$ ProductName', ...},. .. 'ActualAmount':{'$ sum':'$ ActualAmount'}, ... 'ProductQuantity':{'$ sum':'$ ProductQuantity'}, ... 'ProductId':{'$ addToSet':'$ ProductId'}, ...}, ...}, ... {... '$ project':{... 'ProductQuantity':true, ... 'ActualAmount':true, ... 'NumberOfProductInStock':{'$ size':'$ ProductId'} ...} ...}]) 

Điều này sẽ tạo ra kết quả sau -

 {"_id":{"ProductName":"Product-2"}, "ActualAmount":130, "ProductQuantity":2, "NumberOfProductInStock":1} {"_id":{"ProductName":"Sản phẩm -1 "}," ActualAmount ":220," ProductQuantity ":2," NumberOfProductInStock ":2}