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

मोंगोडब में एकल क्वेरी में न्यूनतम और अधिकतम मूल्य प्राप्त करें

आप नीचे एकत्रीकरण का प्रयास कर सकते हैं

$facet आपको usages . के लिए दो निम्नतम और उच्चतम मान देगा और आप आसानी से $project कर सकते हैं उनके माध्यम से $filter का उपयोग करके ऑपरेटर

db.collection.aggregate([
  { "$facet": {
    "minUsages": [{ "$sort": { "usages": -1 } }],
    "maxUsages": [{ "$sort": { "usages": 1 } }]
  }},
  { "$addFields": {
    "lowestUsages": {
      "$arrayElemAt": ["$minUsages", 0]
    },
    "highestUsages": {
      "$arrayElemAt": ["$maxUsages", 0]
    }
  }},
  { "$project": {
    "minUsages": {
      "$filter": {
        "input": "$minUsages",
        "as": "minUsage",
        "cond": {
          "$eq": ["$$minUsage.usages", "$lowestUsages.usages"]
        }
      }
    },
    "maxUsages": {
      "$filter": {
        "input": "$maxUsages",
        "as": "maxUsage",
        "cond": {
          "$eq": ["$$maxUsage.usages", "$highestUsages.usages"]
        }
      }
    }
  }}
])

या आप इसे बस find . के साथ कर सकते हैं क्वेरी भी

const minUsage = await db.collection.find({}).sort({ "usages": -1 }).limit(1)
const maxUsage = await db.collection.find({}).sort({ "usages": 1 }).limit(1)

const minUsages = await db.collection.find({ "usages": { "$in": [minUsages[0].usages] } })
const maxUsages = await db.collection.find({ "usages": { "$in": [maxUsages[0].usages] } })

यहां एक नज़र डालें




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. लूपबैक में क्वेरी में दूरस्थ विधि शामिल है

  2. मोंगोडब में एक सरणी में सभी तत्वों को अपडेट करें

  3. क्या MongoDB फ्लोटिंग पॉइंट प्रकारों का समर्थन करता है?

  4. Mongo C# 2.0 ड्राइवर का उपयोग करके एंबेडेड दस्तावेज़ को बदलें

  5. अनुक्रमण पर प्रभाव mongodb _id पीढ़ी