support unique key
update test
add document