2019独角兽企业重金招聘Python工程师标准>>>

看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然

傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的”lock file”阻止了mongodb的开启,接下来我们要做的就

是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享。

一: Insert操作

上一篇也说过,文档是采用“K-V”格式存储的,如果大家对JSON比较熟悉的话,我相信学mongodb是手到擒来,我们知道JSON里面Value

可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相同的方式也适合于BSON。

常见的插入操作也就两种形式存在:“单条插入”和“批量插入”。

①  单条插入

先前也说了,mongo命令打开的是一个javascript shell。所以js的语法在这里面都行得通,看起来是不是很牛X。

② 批量插入

这玩意跟“单条插入”的差异相信大家应该知道,由于mongodb中没有提供给shell的“批量插入方法”,没关系,各个语言的driver都打通

了跟mongodb内部的批量插入方法,因为该方法是不可或缺的,如果大家非要模拟下批量插入的话,可以自己写了for循环,里面就是insert。

二:Find操作

日常开发中,我们玩查询,玩的最多的也就是二类:

①: >, >=, <, <=, !=, =。

②:And,OR,In,NotIn

这些操作在mongodb里面都封装好了,下面就一一介绍:

<1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面是一一对应的,举几个例子。

<2> "无关键字“, "$or", "$in","$nin" 同样我也是举几个例子

<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”,这玩意威力很强的。

<4> 有时查询很复杂,很蛋疼,不过没关系,mongodb给我们祭出了大招,它就是$where,为什么这么说,是因为$where中的value

就是我们非常熟悉,非常热爱的js来助我们一马平川。

三:Update操作

更新操作无非也就两种,整体更新和局部更新,使用场合相信大家也清楚。

<1> 整体更新

不知道大家可还记得,我在上一篇使用update的时候,其实那种update是属于整体更新。

<2> 局部更新

有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?easy的问题,mongodb中已经给我们提供了两个

修改器: $inc 和 $set。

①  $inc修改器

$inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上

自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。

② $set修改器

啥也不说了,直接上代码

<3> upsert操作

这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我

没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单

将update的第三个参数设为true即可。

<4> 批量更新

在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单

的,在update的第四个参数中设为true即可。例子就不举了。

四: Remove操作

这个操作在上一篇简单的说过,这里就不赘述了。

转载于:https://my.oschina.net/u/2317688/blog/629799

8天学通MongoDB——第二天 细说增删查改相关推荐

  1. Java操作MongoDB数据库CRUD(增删查改)

    Java操作MongoDB数据库CRUD(增删查改) 借助mongo-java-driver包,对MongoDB数据库的集合(DataTable)及文档(BSON对象数据)进行增删查改操作.本文的核心 ...

  2. mongodb java条件查询_java实现对mongodb,泛型封装增删查改、条件查询等操作

    本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...

  3. java操作mongodb,泛型封装增删查改、条件查询等操作

    本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...

  4. 转载: 8天学通MongoDB——第三天 细说高级操作

    今天跟大家分享一下MongoDB中比较好玩的知识,主要包括:聚合,游标. 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. &l ...

  5. 转载: 8天学通MongoDB——第七天 运维技术

    这一篇我们以管理员的视角来看MongoDB,作为一名管理员,我们经常接触到的主要有4个方面: 1.  安装部署 2.  状态监控 3.  安全认证 4.  备份和恢复, 下面我们就一点一点的讲解. 一 ...

  6. 8天学通MongoDB——第五天 主从复制

    随笔 - 218  文章 - 1  评论 - 3819 8天学通MongoDB--第五天 主从复制 从这一篇开始我们主要讨论mongodb的部署技术. 我们知道sql server能够做到读写分离,双 ...

  7. 数据数据库学通MongoDB——第一天 基础入门

    在本文中,我们主要介绍数据数据库的内容,自我感觉有个不错的建议和大家分享下 关于mongodb的利益,长处之类的这里就不说了,一唯要讲的一点就是mongodb中有三元素:数据库,合集,文档,其中&qu ...

  8. 8天学通MongoDB——第四天 索引操作

    原文:8天学通MongoDB--第四天 索引操作 这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性 ...

  9. 转载: 8天学通MongoDB——第六天 分片技术

    在MongoDB里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存 就吃不消了,针对这样的场景我们该如何应对. 一:分片 mong ...

最新文章

  1. 有什么好用的SaaS软件推荐?
  2. 负载均衡集群LVS模式之DR模型
  3. ocjp 31-40
  4. @description iPhoneX炫彩渐变背景实现
  5. python初始环境安装
  6. node 升级_那些修改node_modules的骚操作
  7. KnockoutJS 3.X API 第七章 其他技术(3) 延迟更新
  8. 网站博客搬家工具大全
  9. 【老生谈算法】matlab实现图像复原算法源码——图像复原
  10. AndroidSDK和ADT下载地址
  11. 17-sendto函数和异步错误
  12. 计算机碎片整理的作用,经常做磁盘碎片整理的好处
  13. 基于STM32的光照度自动调节系统
  14. PHP steam第三方登录,网站支持第三方STEAM登录了
  15. vmvare虚拟机无法读取ntfs的U盘解决方法,以及更换镜像下载源
  16. element 按钮样式 点击后发生改变(完整改变element按钮样式)
  17. EVE-NG模拟器社区版网络模拟环境搭建教程
  18. Python编写数字转换成中文大写
  19. 赛后复盘 - DataCastle 科大讯飞AI营销算法大赛
  20. iOS AVFoundation

热门文章

  1. Zarafa 7.0.11/7.1.2 发布
  2. 匿名块 块内实体的修改
  3. java 生成二维码 QRCode、zxing 两种方式
  4. 万众瞩目,2018中国企业数字化转型国际峰会,重磅来袭
  5. mysql常见问题处理-插入数据error code:1206
  6. WheelView实现省市区三级联动(数据库实现版本号附带完整SQL及数据)
  7. mysql基本操作 [http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html]
  8. 添加和删除行的能力table(能够编辑的表的内容)
  9. 分享一个Go按行读取命令行输入的例子
  10. 从明天起,做一个幸福的人。喂马,砍柴,周游世界