This is a very useful link to show every field's meaning and usage.
https://developer.gnome.org/NetworkManager/unstable/nmcli-examples.html
nmcli conn mod ens161 ipv4.dns-search "example.com"
nmcli conn mod ens161 ipv4.dns "18.18.18.18"
nmcli conn mod ens161 ipv4.domain "domain.com"
nmcli conn up ens161
nmcli conn mod ens193 ipv4.gateway "10.200.208.1"
nmcli conn mod ens161 ipv4.routes "10.200.208.1"
nmcli conn mod eth161 +ipv4.routes "192.168.122.0/24 10.10.10.1 100" #add route entry, it is static, restart net will not lost
#note, when delete route, target network,netmask, and nexthop are all needed.
nmcli conn mod eth161 -ipv4.routes "192.168.122.0/24 10.10.10.1 100" #add route entry, it is static, restart net will not lost