I am trying to update nested elements for queried types.
Currently working version with MongoDB Java Driver looks like this:
unsetResult = updateOne(BasicDBObject("_id", profile._id).append("storedPayments.preferred", true), BasicDBObject("\$set", BasicDBObject("storedPayments.$.preferred", false)))
result = updateOne(Document().append("_id", profile._id).append("storedPayments.id", id), BasicDBObject("\$set", BasicDBObject("storedPayments.$.preferred", true)))
Whenever I try it via KMongo (mind you the documentation for doing this is quite limited..)
unsetResult =
updateOneById(profile._id,
set((BillingProfile::storedPayments.
colProperty.filteredPosOp
(StoredPayment::
id.name) / StoredPayment::preferred
) setTo false
),
UpdateOptions
().arrayFilters
(listOf(StoredPayment::id
ne id
)))
result =
updateOneById(profile._id,
set(BillingProfile::storedPayments.
colProperty.filteredPosOp
(StoredPayment::
id.name) / StoredPayment::preferred
setTo true
),
UpdateOptions
().arrayFilters
(listOf(StoredPayment::id
eq id
)))
Please let me know if I am using the above query wrong.