MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कुल मिलाकर समूह कैसे करें लेकिन मोंगो का उपयोग करके अन्य फ़ील्ड भी दिखाएं?

आपने अपनी प्रारंभिक दस्तावेज़ संरचना पोस्ट नहीं की है।

Document Structure:

{
    "_id" : ObjectId("50b59cd75bed76f46522c471"),
    "comment_id" : 61,
    "post_id" : 29,
    "comments" : [
                   {
                       "type" : "accepted",
                       "like" : 3
                   },
                   {
                      "type" : "rejected",
                      "like" : 3
                   },
                   {
                      "type" : "spam",
                      "like" : 3
                   }
                ]
}

उपरोक्त के रूप में आपकी दस्तावेज़ संरचना को मानते हुए, मैंने इस प्रश्न की रचना की है। आपको अपनी जरूरत के अनुसार इसमें हेरफेर करना होगा।

db.posts.aggregate([
        {$unwind:"$comments"},
        {$match:{"$comments.type":{$ne:"spam"}}},
        {$group:{_id:{post_id:"$post_id",comment_id:"$comment_id"},LikeSum:{$sum:"$comments.like"}}},
        {$group:{_id:{post_id:"$_id.post_id"},AvgComments:{$avg:"$LikeSum"}}},
        {$sort:{AvgComments:-1}},
        {$limit:1}
              ])

उपरोक्त क्वेरी का निर्माण इस प्रकार किया गया है:

1.) Unwind the comments array and form individual documents for each element in the comments array
2.) Select only the non-spam comments
3.) Calculate the sum of likes for each comment of all posts
4.) Calculate the average Comment likes for each post
5.) Sort documents in descending order of Average Comment Likes
6.) Select only the first document.

आउटपुट दस्तावेज़ कुछ इस तरह होगा

{
    "result" : [
        {
            "_id" : {
                       "post_id" : xx
                    },
            "AvgComments" : xx.xx // Avg Comment likes for post xx
        }
               ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला और एक्सप्रेस:​​संदर्भ वाले डेटा को ठीक से कैसे निकालें, बनाएं और स्टोर करें

  2. यदि कोई परिणाम नहीं है तो MongoDB 0 की कुल वापसी संख्या है

  3. Upsert के साथ अपडेट को सही के रूप में उपयोग करते समय डिफ़ॉल्ट मान सेट नहीं है

  4. Meteor.js और MongoDB के साथ पूर्ण-पाठ खोज

  5. MongoDB व्हाइटस्पेस वर्ण