कैसे करने के लिए योग के क्षेत्र में मूल्यों के संग्रह में नेवला

0

सवाल

const PostSchema = new mongoose.Schema({
  title: {
    type: String,
  },
  text: {
    type: String,
    required: true,
  }
  postedBy: {
    type: mongoose.Schema.ObjectId,
    ref: "User",
  }
  likes: [{
    type: mongoose.Schema.ObjectId,
    ref: "User",
  }, ],
  likeLength: {
    type: Number,
    default: 0
  }
});


let totalLikes = Post.aggregate([{
    $match: {
      postedBy: req.profile._id,
    },
  },
  {
    $group: {
      _id: "$postedBy",
      total_count: {
        $sum: "$likeLength"
      }
    }
  },
])

मैं चाहता था करने के लिए राशि likeLength मूल्यों में सभी पोस्ट संग्रह द्वारा फ़िल्टर postedBy क्षेत्र और अभिव्यक्त किया है, जो परिणाम के प्रकार पूर्णांक है. मैं करने की कोशिश की totalLikes समारोह ऊपर है, लेकिन यह नहीं कर सकता.

javascript mongodb mongoose node.js
2021-11-23 17:31:51
2
0

शायद इस में मदद कर सकते हैं

  • स्ट्रिंग बनाने req.profile._id करने के लिए ObjectId
  • समूह द्वारा null सभी से कर रहे हैं एक ही postedBy तो सभी दस्तावेज़ पारित कर दिया है कि कर रहे हैं । (द्वारा समूह नल सभी संग्रह 1 समूह) (अपने समूह ठीक था, लेकिन यह भी यह आसान है)
  • unset _id प्राप्त करने के लिए परिणाम के रूप में [{"total_count" : 20}] उदाहरण के लिए

*परीक्षण से पहले समूह का परीक्षण अगर $match काम करता है और दस्तावेजों के पाए जाते हैं ।

let totalLikes = Post.aggregate([{
    $match: {
      postedBy: mongoose.Types.ObjectId(req.profile._id),
    }
  },
  {
    $group: {
      _id: null,
      total_count: {
        $sum: "$likeLength"
      }
    }
  },
  {"$unset": ["_id"]}
])
2021-11-23 18:51:11

बहुत बहुत धन्यवाद . मैं भी यह इस समारोह के साथ $समूह: { _id: "$postedBy",sumLikes: {$योग: {$आकार: "$पसंद" }}} लेकिन कैसे प्राप्त करने के लिए इस डेटा है , मेरा मतलब है पूर्णांक , और भेजने के लिए है कि संख्या करने के लिए ग्राहक?
jdee

प्रश्नों हमेशा रिटर्न सरणियों के दस्तावेजों (या खाली सरणी अगर कुछ भी नहीं पाया जाता है). करीब आपको मिल सकता है इस [{total_count : 20 }] यदि आप चाहते हैं यह आप को दूर कर सकते हैं _id के साथ project या unset
Takis _

बहुत बहुत धन्यवाद और मैं वास्तव में खेद के लिए अपना समय बर्बाद कर रहे, लेकिन मुझे लगता है कि मेरी समस्या नहीं है. मैं का उपयोग करें प्रतिक्रिया पर ग्राहक और जब मैं इस डेटा को सर्वर से मैं मुठभेड़ के साथ इस {_pipeline: सरणी(3), विकल्प: {...}} तो कैसे कर सकते हैं मैं तक पहुँचने मेरा नंबर :). हालांकि मैं शायद पूछने के लिए नए सवाल के लिए है कि की वजह से वेबसाइट के प्रारूप में है.
jdee

aggregations वापसी कर्सर, और वे कई विधियों, एक साधारण से एक है toArray() और वहाँ से आप उन्हें पाने के साथ जे एस के बाद. देखें नेवला प्रलेखन
Takis _

वास्तव में मैं इन का उपयोग butget कोई परिणाम 1) console.लॉग(आँकड़े?._pipeline?.मानचित्र((मद)=> ( <p > {मद[1]} </p>) और 2) के आँकड़े._pipeline[1]
jdee

यदि आप समस्याओं के साथ जे एस, शायद पूछने नए सवाल है , मैं जावा का उपयोग करें/clojure सामान्य रूप में, लेकिन कई लोगों की मदद कर सकते हैं
Takis _

धन्यवाद मैं पर लग जाएगा कि पूछना होगा और नए सवाल तो यह नहीं कर सकता . फिर से धन्यवाद
jdee
0

के लिए समाधान है कि निम्न है. के साथ परिणाम[0] परिणाम होगा के साथ एक वस्तु sumLikes संपत्ति.

aggregate([
      {
        $match: {postedBy: req.profile._id}
      },
      {
        $group: {
          _id: null,
          sumLikes: {
            $sum: "$likeLength",
          },
        },
      },
      { $unset: ["_id"] },
    ], function(err, result) {
      if(err){
        console.log(err)
      }else{
        res.json(result[0])
      }})

2021-11-23 18:35:38

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में