node.js - How to get distinct value of sub document field with their count in collection in mongodb? -
I have a collection with the documents below. I want to get all the documents with their sub-documents counting in different values and collections. Example:
var record = [{"property": [{"" ":" color "," value ":" [["" name ":" "", "Name": "ddd"}, {"attributes": "red", "value": "red", "_id": "", "", "" "" "," _id ":" 544103a0348ebc91ee75b33 "}, "{Name:"}: "one"}, {"attribute": [":" "", "name": "size", "value": "l", "_id": "5441091393450f1619be99b0"}], "name" Color "," value ":" black "," _id ":" 5441092593450f16 ("name": "size", "value": "l", "_id": "5441092593450f1619999922"}], "name": "sdfsda "{": "5441093d93450f1619be99b4"}], "color", "value": "green", "_id": "5441093d93450f161999993"}, {"name": "size", "value "" "", "_id", name: "", {"attribute": {{"name": "color", "value": "green", "_id": "5441095793450f1619be99b5"}, {"no Me ":" size "," value ":" m "," _id ":" 5441095793450f1619be99b6 "}," name ":" a "}]
To get:
var output {value: 'green', count: 2}], "size": [{value: 'black', count: 2} {value: 'black Count: 1} {value: 'red' 's', count: 2} {value: 'l', count: 1} {value: 'm', count: 1}}}
How can I get this output from Mongodb?
Can I get this output from the overall framework of Mangodeb, if so, how? - High priority
Yes, gross can make it
var output = {}; Db.c.aggregate ({$ unwind: "$ attributes"}, {$ group: {_id: {name: "$ name", value: "$ value"}, calculation: {$ sum: 1}} / / /: {Name: "size", value: "s"}, after this step / like: // {_id: {name: "color", value: "green"}, calculation: 2} // {_id : Count: 2}}, {$ group: {_id: "$ _id.name", content: {$ push: {value: "$ _id.value", count: "$ count"}} // next Output [{value: "green", count: 2}]} // {_id: "size", content: [{value: 's', count: 2}]}}]). {Output [doc._id] = doc.contens; // Just convert to format as expected}};
Comments
Post a Comment