- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mongodb增删改查详解
mongodb 增删改查详解
仔细观察 “划线区域 “的信息,发现 db 文件夹下有一个类似的”lock file”阻止了 mongodb 的开启,接下来我们要
做的就是干掉它,之后,开启成功,关于 mongodb 的管理方式将在后续文章分享。
一: Insert 操作
上一篇也说过,文档是采用 “K-V”格式存储的,如果大家对 JSON 比较熟悉的话,我相信学 mongodb 是手到擒来,我
们知道 JSON 里面 Value
可能是 “字符串” ,可能是 “数组” ,又有可能是内嵌的一个JSON 对象,相同的方式也适合于 BSON。
常见的插入操作也就两种形式存在: “单条插入”和 “批量插入”。
① 单条插入
先前也说了,mongo 命令打开的是一个 javascript shell 。所以js 的语法在这里面都行得通,看起来是不是很牛
X。
1 / 6
② 批量插入
这玩意跟 “单条插入”的差异相信大家应该知道,由于 mongodb 中没有提供给 shell 的 “批量插入方法” ,没关系,
各个语言的 driver 都打通
了跟 mongodb 内部的批量插入方法,因为该方法是不可或缺的,如果大家非要模拟下批量插入的话,可以自己写了 for 循
环,里面就是 insert。
二:Find 操作
日常开发中,我们玩查询,玩的最多的也就是二类:
① : , =, , =, !=, =。
② :And ,OR ,In ,NotIn
这些操作在 mongodb 里面都封装好了,下面就一一介绍:
1$gt, $gte, $lt, $lte, $ne, 没有特殊关键字 ,这些跟上面是一一对应的,举几个例子。
2 / 6
2 无关键字 “, $or, $in,$nin 同样我也是举几个例子
3 在 mongodb 中还有一个特殊的匹配,那就是 “正则表达式” ,这玩意威力很强的。
4 有时查询很复杂,很蛋疼,不过没关系,mongodb 给我们祭出了大招,它就是$where ,为什么这么说,是因为$where
中的 value
3 / 6
就是我们非常熟悉,非常热爱的 js 来助我们一马平川。
三:Update 操作
更新操作无非也就两种,整体更新和局部更新,使用场合相信大家也清楚。
1 整体更新
不知道大家可还记得,我在上一篇使用 update 的时候,其实那种 update 是属于整体更新。
2 局部更新
有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?easy 的问题,mongodb 中已经给我们
提供了两个
修改器: $inc 和 $set。
① $inc 修改器
$inc 也就是 increase 的缩写,学过 sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在
原有的基础上
自增$inc 指定的值,如果 “文档”中没有此 key ,则会创建key ,下面的例子一看就懂。
4 / 6
② $set 修改器
啥也不说了,直接上代码
3 upsert 操作
这个可是 mongodb 创造出来的 “词” ,大家还记得update 方法的第一次参数是 “查询条件”吗?,那么这个 upsert
操作就是说:如果我
没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是 update 还是 add 操作,使
用起来很简单
将 update 的第三个参数设为 true 即可。
4 批量更新
5 / 6
在 mongodb 中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在 mongodb 中
实现也是很简单
的,在 update
文档评论(0)