MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Tidak bisa mendapatkan nilai properti dirtyPropertyNames untuk bidang asosiasi di grails

Saat ini, GORM untuk MongoDB tidak memberikan nilai yang benar di dirtyPropertyNames bidang. Jadi, Anda harus menggunakan bidang injeksi tingkat rendah lainnya dalam instance domain yaitu $changedProperties .

Tapi, ada juga masalah dengan $changedProperties bahwa meskipun Anda mengikat bidang dengan nilai yang sama, $changedProperties akan memiliki entri untuk itu. Jadi Anda dapat mengubahnya sedikit lebih seperti ini agar kode Anda berfungsi:

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. MongoDB jumlah () data

  2. mongoengine +django cara menghitung jumlah item dari konten yang sama

  3. Dapatkan semua kemungkinan kombinasi dari array di agregasi MongoDB

  4. Tidak dapat menghapus dari kumpulan mongodb angular MEAN stack

  5. Driver MongoDB C # tidak melepaskan koneksi maka kesalahan