这是Grails中的客户域类(v3.1):
class Customer {
static mapWith = 'mongo'
String id
String email
Boolean blacklisted
String name
String telephone
Date dateCreated
Date lastUpdated
String language = 'en'
static constraints = {
email nullable: false
blacklisted nullable: false
name nullable: true
language nullable: true
telephone nullable: true
}
static mapping = {
version false
}
}
我可以使用此类插入MongoDB中的客户集合中,并且工作正常。当我尝试保存一个带有空值的字段时,就会发生问题。
customer.telephone = null
customer.save()
将值设置为null对MongoDB集合中的字段没有影响,其值将保持在更新之前的值。例如,如果将电话设置为" 1234567",并且当我将其更新为null时,则MongoDB中的值仍保留为" 1234567"。
我尝试在save()
中使用failOnError: true
和flush: true
,两者都无法正常工作。有任何建议吗?
您可以尝试直接使用mongo驱动程序,以查看它是mongo问题还是Gorm问题。
Customer.collection.updateOne([_id:'the-id'],[telephone:null])