यदि आप संपूर्ण संग्रह को रूपांतरित करना चाहते हैं, तो आप इसे एकत्रीकरण पाइपलाइन के साथ कर सकते हैं।
आपको $substr
. का उपयोग करके मुद्रा को स्ट्रिंग में बदलने की आवश्यकता है और $toInt(
या $toDouble
, या $convert
जो भी आपके मामले में उपयुक्त हो) $project
. में स्टेज और $out
आपके एकत्रीकरण के अंतिम चरण के रूप में। $out
एकत्रीकरण पाइपलाइन का परिणाम दिए गए संग्रह नाम पर लिखता है।
लेकिन $out
. का उपयोग करते समय सावधान रहें . आधिकारिक मोंगोडब दस्तावेज के अनुसार:
इसे आजमाएं:
db.collection_name.aggregate([
{
$project: {
category : "$category",
category_name : "$category_name",
lot_title : "$lot_title",
seller_name : "$seller_name",
seller_country : "$seller_country",
bid_count : "$bid_count",
winning_bid : { $toInt : {$substr : ["$winning_bid",2,-1]}},
bid_amount : "$bid_amount",
lot_image : "$lot_image"
}
},{
$out : "collection_name"
}
])
आपको allowDiskUse : true
. का उपयोग करने की आवश्यकता हो सकती है एकत्रीकरण पाइपलाइन के विकल्प के रूप में, क्योंकि आपके पास बहुत सारे दस्तावेज़ हैं, और यह 16MB mongodb सीमा को पार कर सकता है।
collection_name
को बदलना न भूलें वास्तविक संग्रह नाम के साथ, और $project
. में सभी आवश्यक फ़ील्ड शामिल करें चरण जो आपको संग्रह में चाहिए। और कृपया पहले किसी भिन्न temporary_collection
. के साथ मान की दोबारा जांच करें या केवल $आउट चरण को हटाकर और aggregation
. के परिणाम की जांच करके पाइपलाइन।
विस्तृत जानकारी के लिए आधिकारिक mongodb दस्तावेज़ पढ़ें $out , $toInt , $toDouble , $convert, $substr और allowDiskUse ।