Database

[{"f1":"v1","f2":{"id":1,"sub":"subv","updatedAt":123}}]

Query

db.collection.update({"f2.id":1,"f2.updatedAt":{$lte:100}},{"$set":{"f2.sub":"newsubv","f2.updatedAt":100},"$setOnInsert":{"f1":"v1","f2.id":2,}},{"upsert":true})

Result