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

Grails में एसोसिएशन फ़ील्ड के लिए डर्टीप्रॉपर्टीनाम गुण मान प्राप्त करने में असमर्थ

वर्तमान में, MongoDB के लिए GORM dirtyPropertyNames में सही मान नहीं देता है खेत। तो आपको डोमेन इंस्टेंस यानी $changedProperties में एक और निचले स्तर के इंजेक्शन वाले फ़ील्ड का उपयोग करना होगा ।

लेकिन, $changedProperties . में भी एक समस्या है भले ही आप किसी फ़ील्ड को समान मान से बाँधते हों, $changedProperties इसकी एंट्री होगी। तो आप अपने कोड को काम करने के लिए इसे इस तरह थोड़ा और बदल सकते हैं:

def beforeUpdate() {
    def instance = this
    Map updatedFields = instance.$changedProperties

    updatedFields.each { name, value ->
        if (updatedFields[name] != instance[name]) {
            println "Field value $name is updated"
            if (name == "addresses") {
                // I've not run this for a long time, just confirm the old and new addresses values and swap the assignment of below lines
                List newAddresses = updatedFields[name]
                List oldAddresses = instance[name]

                newAddresses.each { address ->
                    if (!address.id) {
                        println "Got new address: $address.status"
                    } else {
                        Address oldAddress = oldAddresses.find { it.id == address.id }
                        if (!oldAddress) { // This is just an edge condition
                            println "Got new address: $address.status"
                        } else if (oldAddress.status != address.staus) {
                            println "$address status is updated to $address.status"
                        }
                    }
                }
            }
        }
    }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जावा प्रोजेक्ट में मोंगोडीबी मानचित्र/कार्यों को कम करने के लिए कहां लिखना और स्टोर करना है?

  2. NodeJS मोंगो - नेवला - गतिशील संग्रह नाम

  3. एक्सप्रेस नोडजेएस और मोंगोडीबी का उपयोग करके एपीआई से डेटा पुनर्प्राप्त करने में असमर्थ, लोड हो रहा है

  4. नेवला - मापदंड द्वारा उप-दस्तावेज़ ढूँढना

  5. मोंगो:डॉट नोटेशन के बिना उप-दस्तावेज़ ढूंढें