最近开始阅读一些关于MongoDB的文章,越来越觉得它就是我所需要。不过,我先对对它知之甚少,看到都是些表面现象,慢慢了解吧。
昨天开始阅读卡尔写的MongoDB简介,一共33页,感觉文章说得不算太清楚,需要自己动手多尝试和体会。
对于传统数据库来说CRUD(=Create+Read+Update+Delete)就是核心了,而U又是其中最值得关注的!今天把Update部分边看简介,边实践了一下。
Update有4个参数:第一个、selector,第二个、newValue,第三个、upserts,第四个、multipleUpdate
selector和CRD的一样,是个检索选择器,明确查询条件的;
newValue就是要更新的内容了,包含两种基本情况,即有没有$set、$inc、$push这些参数:
情况一、无参数,则newValue替换掉原先selector的内容;
情况二、有参数,则$set是对指定field进行更新newValue;$inc要求指定field为数值,加上newValue值;$push要求指定field为数组,为数组加入newValue项。当然,参数肯定还有很多,我也先只学到这么多!
具体我就不展开了,敲一遍代码就知道啥意思;
upserts是个逻辑值参数,默认为false,即根据selector查询,查到了document,那就执行更新;没查到就啥也不做。那设置为true,意思就很明显了,如果没查到就Create一个新document存放selector和newValue。
multipleUpdate也是个逻辑值参数,默认为false,即根据selector查询,查到了documents,那就执行更新第一条document;设置为true的话,就把所有查到的document都更新。
前面写的两篇MongoDB入门笔记