我有以下案例类:
@GQLDirective(federation.Key("User Config"))
case class UserConfig(
userId: Int,
personalGroup: Option[PersonalGroup] = None,
accountGroup: Option[AccountGroup] = None
) extends Bson {
override def toBsonDocument[TDocument](documentClass: Class[TDocument], codecRegistry: CodecRegistry): BsonDocument = {
new BsonDocumentWrapper[UserConfig](this, codecRegistry.get(classOf[UserConfig]))
}
}
并尝试以这种方式更新已存储的文档:
def update(userConfig: UserConfig) = {
collection.updateOne(equal("userId", 1), userConfig).headOption()
}
但是当我尝试这样做时,出现以下错误:
Invalid BSON field name userId
我也尝试过使用 replaceOne 方法,但它会替换整个对象并删除我不想删除的字段。
我想要实现的目标:我只想在 mongodb 文档中保存更改的字段。这些字段由 graphql 请求给出