mongoDB在go中使用是单表查询,每条数据的插入都是按照:数据唯一字段是否存在,存在则报错,反之,就正常插入。mongo提供了两种插入方法,insert和upsert
insert介绍
insert是插入方法,这是一个根据拼接数据库字段,自动插入的方法,但是这个方法需要我们自己提前去判断数据是否存在,然后将我们定义的body体数据给插入到mongo库中。所以就会造成我们需要两次操作数据库表。
如上图:1.我们需要定义条件,2.根据条件查询数据库判断数据是否重复,
3.自己生成一个id交给数据库,4,若是按照模拟java的MVC分层模式,那么需要对定义的参数体schema类转换为实体类entity。最后我们根据转换的实体类作为真正需要添加的body体,然后再次调用数据库操作insert插入数据。返回自定义数据id。
加粗样式这样我们发现insert需要两次去进行数据库操作,所以为了简便这个方式,mongo提供了一个可以一步直接插入的方式,即:upsert
upsert
upsert官方给出的解释是如果数据存在,则进行更新操作,如果数据不存在,则进行插入数据(也就是插入一条数据&#x