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

MongoDB में संदर्भात्मक अखंडता को लागू करने का एक तरीका है

हटाए जाने पर संदर्भात्मक अखंडता के संबंध में, बशर्ते सभी हटाने के अनुरोध आपके आवेदन द्वारा प्रस्तुत किए जाते हैं, तो रिकॉर्ड को हटाने से पहले संबंधित संग्रह में आईडी मौजूद नहीं है की जांच करके इसे नियंत्रित किया जा सकता है। मैं इसे इस प्रकार करता हूं

सीआरयूडी संचालन (हम केवल यहां हटाएं से संबंधित हैं - ध्यान दें कि मैं वस्तुओं की एक सरणी कैसे पास कर रहा हूं संग्रह और फ़ील्ड जिसे दस्तावेज़ (रिकॉर्ड) के आईडी के साथ मिलान करने की आवश्यकता है जिसे हम हटा रहे हैं

const express = require('express')
const router = express.Router()
const iflexCRUD = require('../../lib/iflexCRUD')

const { UnitType } = require('../../models/Unittype')
const { Unit } = require('../../models/Unit')

iflexCRUD.create(router, '/', UnitType)
iflexCRUD.read(router, '/', UnitType, { sort: 'name' })
iflexCRUD.update(router, '/:id', UnitType)
iflexCRUD.deleteByID(router, '/:id', UnitType, [
  {
    model: Unit,
    field: 'unittype'
  }
])
iflexCRUD.delete(router, '/unittype/:unittype', UnitType)

module.exports = router

सीआरयूडी डिलीट हैंडलर यह एक सामान्य डिलीट रिक्वेस्ट हैंडलर है जिसका उपयोग मैं सीआरयूडी ऑपरेशंस के लिए करता हूंमैं संग्रह / फ़ील्ड मानों की एक सरणी पास करता हूं और यह देखने के लिए जांच करता हूं कि क्या कोई एकल रिकॉर्ड है जो हटाए जा रहे दस्तावेज़ की आईडी से मेल खाता है।

// CRUD-DELETE
iflexCRUD.deleteByID = (router, route, Collection, refs = []) => {
  router.delete(route, async (req, res) => {
    try {
      let exception = false
      //Enforce Referential Integrity for deletes - Deny when ID is used in any of refs collections
      //Loop through any referenced files (first record) to ensure there are no other collections using this document
      for (let i = 0; i < refs.length; i++) {
        if (!exception) {
          let refObj = {}
          refObj[refs[0].field] = req.params.id
          const result = await refs[i].model.findOne(refObj, (err, rec) => {})
          exception = result !== null
        }
      }
      // Process deletion of there are no exceptions
      if (!exception) {
        const doc = await Collection.deleteOne({ _id: req.params.id })
        res.send(doc)
      } else {
        return res
          .status(401)
          .json(
            'Document is already use in related collection  - it cannot Delete!'
          )
      }
    } catch (e) {
      return res.status(401).json(e.message)
    }
  })
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में दोनों दस्तावेज़ फ़ील्ड के साथ कई दस्तावेज़ों को एक दस्तावेज़ में मर्ज करें

  2. जावा एपीआई का उपयोग करके "पसंद" के साथ मोंगोडब से कैसे पूछें?

  3. mongodb - यदि मौजूद नहीं है तो दस्तावेज़ बनाएं, अन्यथा सरणी पर धक्का दें

  4. स्प्रिंग डेटा मोंगोडीबी पीओजेओ को खत्म करता है

  5. मैक्स ओएस शेर पर XAMPP के साथ MongoDb PHP ड्राइवर स्थापित करने में त्रुटि