Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में नया फ़ील्ड जोड़कर कीमत को विभाजित करके कन्कैटनेट करना

$addFields, $map, $divide, $toString और $reduce का उपयोग करके नया फ़ील्ड बनाएं।

डेमो डेटा

db.demo719.insertOne({
    "Number":"7374644",
    "details" : {
        "otherDetails" : [
            { "ProductId" :"102", "ProductPrice" : NumberInt(500) },
            { "ProductId" :"103", "ProductPrice" : NumberInt(2000) }
        ]
    }
});

क्वेरी

db.demo719.aggregate([
    {
        $addFields:{
            productPriceList: {
                $reduce: {
                    input: {
                        $map: {
                            input: "$details.otherDetails.ProductPrice",
                            in: { $toString: { $divide: ["$$this", 5] } }
                        }
                    },
                    initialValue: "",
                    in: { $concat: ["$$value", "$$this", " \n "] }
                }
            }
        }
    },
    { $project: { _id: 0, Number:1, productPriceList:1 } }
])

परिणाम

{ "Number" : "7374644", "productPriceList" : "100 \n 400 \n " }

प्रत्येक कीमत को 5 से विभाजित करके स्ट्रिंग में बदला गया और नई लाइन के साथ जोड़ा गया।

  1. - MongoDB कलेक्शन के सभी दस्तावेजों में नया फील्ड जोड़ें

    नया फील्ड जोड़ने के लिए, MongoDB में $addFields का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo712.insertOne({Name:John}); { acknowledged : true, insertedId : ObjectId(5ea85f675d33e20ed1097b82) } > db.demo712.insertOne({Name:Chris}); { acknowledged : true, insertedId : Ob

  1. - MongoDB में नया फ़ील्ड जोड़कर कीमत को विभाजित करके कन्कैटनेट करना

    $addFields, $map, $divide, $toString और $reduce का उपयोग करके नया फ़ील्ड बनाएं। डेमो डेटा db.demo719.insertOne({ Number:7374644, details : { otherDetails : [ { ProductId :102, ProductPrice : NumberInt(500) }, { ProductId :103, ProductPrice : NumberInt(2000) }

  1. - MongoDB में विशिष्ट संख्या से अधिक फील्ड मान वाले डॉक्यूमेंट्स से मिलान करके उन्हें प्राप्त करें

    मिलान के लिए MongoDB में $match का उपयोग करें। विशिष्ट संख्या से अधिक मानों के लिए $gt का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo730.insertOne({Name : Chris, Marks : 33 }); { acknowledged : true, insertedId : ObjectId(5eac54cd56e85a39df5f6339) } > db.demo730.insertOne({ Name : David,