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

Mongodb में खोजें और बदलें?

बिल्कुल नहीं, और इससे मेरा मतलब है कि यदि आप "सटीक स्ट्रिंग" की तलाश नहीं कर रहे थे और हमेशा "समान" अलग स्ट्रिंग के साथ प्रतिस्थापित करना चाहते थे।

अनिवार्य रूप से ऐसा लगता है कि आप दस्तावेज़ों के लिए "रेगेक्स रिप्लेस" की तलाश कर रहे हैं जिसे .update() के माध्यम से निष्पादित किया जा सकता है। . हालांकि यह संभव है कि $regex खोज के लिए, कोई "कैप्चर" या स्टेटमेंट के "अपडेट" भाग जैसे $set

तो इस प्रकार के अपडेट को करने के लिए, आपको अपने दस्तावेज़ों को लूप करना होगा और कोड में संशोधन करना होगा। लेकिन बल्क ऑपरेशन API यहाँ कुछ मदद की जा सकती है:

var bulk = db.collection.initializeOrderedBulkOp();
var counter = 0;

var query = { "url": { "$regex": "^http://example\.com" }};
db.collection.find(query).forEach(function(doc) {

    // Inspect and replace the part of the string
    bulk.find({ "_id": doc._id }).updateOne(
        { "$set": { "url": doc.url.replace("example.com","bucket.aws.com") } }
    );
    counter++;

    // Update once every 1000 documents
    if ( counter % 1000 == 0 ) {
        bulk.execute();
        bulk = db.collection.initializeOrderedBulkOp();
    }

})

// Process any remaining
if ( counter % 1000 != 0 )
    bulk.execute();

ताकि अभी भी लूपिंग की आवश्यकता हो लेकिन कम से कम अपडेट केवल प्रत्येक 1000 दस्तावेज़ संसाधित होने के बाद सर्वर पर भेजे जाते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो सी # ड्राइवर का उपयोग करके, इसे स्टोर करने के लिए कस्टम ऑब्जेक्ट की सरणी को क्रमबद्ध कैसे करें?

  2. elemMatch नेवला में अन्य क्वेरी फ़ील्ड के साथ संयुक्त

  3. मोंगोइड/मोंगोडब के साथ डेटा मॉडल निकालना, मॉडलिंग करना और बदलना

  4. MongoDB:किसी सरणी में आइटम्स की संख्या गिनें

  5. मोंगोडीबी $ ट्रिम