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

Mongodb में एकत्रीकरण क्वेरी द्वारा लौटाए गए दस्तावेज़ों को कैसे हटाएं

चूंकि निकालें कोई क्वेरी शर्त नहीं है कि यह सभी दस्तावेज़ों से मेल खाएगी और एकत्रीकरण परिणाम पर ध्यान दिए बिना हटा दी जाएगी।

समाधान (वर्तमान कर्सर दस्तावेज़ की आईडी से मिलान करें):

db.getCollection("Collection")
  .aggregate([
    {
      $match: { status: { $in: ["inserted", "done", "duplicated", "error"] } }
    },
    {
      $project: {
        yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$date" } }
      }
    },
    { $match: { yearMonthDay: { $eq: "2019-08-06" } } }
  ])
  .forEach(function(doc) {
    db.getCollection("Collection").remove({ "_id": doc._id });
  });

एक और बेहतर समाधान डीबी के लिए सिंगल राउंड ट्रिप होना होगा, जबकि विलोपन को एकत्रीकरण से आईडी की एक सूची मिलती है cursor() के माध्यम से cursor.map()

var idsList = db
  .getCollection("Collection")
  .aggregate([
    {
      $match: { status: { $in: ["inserted", "done", "duplicated", "error"] } }
    },
    {
      $project: {
        yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$date" } }
      }
    },
    { $match: { yearMonthDay: { $eq: "2019-08-06" } } }
  ])
  .map(function(d) {
    return d._id;
  });

//now delete those documents via $in operator
db.getCollection("Collection").remove({ _id: { $in: idsList } });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जावा के लिए बीएसओएन पुस्तकालय?

  2. मोंगोडीबी \uXXXX मुद्दा

  3. क्या मुझे मोंगोडब का कनेक्शन बंद करने की ज़रूरत है?

  4. MongoDB के साथ सरल मतदान प्रणाली

  5. संग्रह में संग्रहीत सरणी को दोबारा आकार दें और CSV को निर्यात करें