摘要

上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作。本篇将继续深入学习一下增删改查。

相关文章

[MongoDB]入门操作

CRUD

通过上篇文章,我们知道collection中存储的每个对象是一个document对象。document是以键值对存在的json形式的对象。我们都知道json的value中存储的数据,可能是单个对象,字符串,数组,也可能是嵌套的json等类型的数据。

insert

插入操作又分为:单个插入和批量插入。

案例:创建一个user,该对象包括用户名称,所在的公司,公司包含公司名称及地址信息。

通过上面的插入操作,我们发现user中包括一个嵌套的company json对象。

后来由于公司app需要添加通讯录功能,需要保存该用户的好友。这是user的friends就可以是一个数据,用来保存用户的name

关于批量插入的操作,查找了很久也没找到合适的方式,估计是mongodb的javasrcipt shell不支持批量的操作吧。不过你可以使用c#驱动,变相的实现批量插入,一个循环一条一条的插入。

find

查找操作,查找支持>,>=,<,<=,!=,=,在mongodb中这些比较符对应的为$gt,$gte,$lt,$lte,$ne。

插入测试数据,用来做find操作

查找年龄等于20的用户

查找年龄大于等于18的用户

其他的比较符不再举例,模仿上图$gte的操作。

$exists 是否存在某个字段

查找存在company字段的document

查找不存在address字段的user

$in:在某个范围

查找公司地址在beijing,shanghai的用户

$nin:不在某个范围

db.users.find({"company.address":{$nin:["beijing","shanghai"]}})

$or:或者

查找用户公司在北京,或者用户年龄满20周岁的用户

正则表达式查询

复杂条件查询可以通过$where实现,可以将js的function 作为$where的值,使用js的实现复杂的条件查询。

update

mongodb的更新,分为整体更新和局部更新。

整体更新:就是所有的不管变化没变化都需要update,有点类似ef中的更新,先查询出对象,然后修改一个字段的值,再更新回去。

局部更新:只是对需要的字段进行更新。

mongodb为我们提供了两个关键字:$inc,$set用来实现mongodb的更新操作。

$inc:增量,是increase的缩写。在原来的基础上加上某个值。

修改年龄为29的用户的年龄,在这个基础上加上-9

$set

用法类似sql中的set

update方法第三个参数,bool类型参数,默认为false,如果为true,则标识如果不存在则创建的操作。

更新名称为zhangsan的用户信息,不存在则创建

批量更新

将第四个参数设置为true

remove(where)

总结

本篇文章学习了mongodb的增删改查的操作。动手操作一遍加深印象。

参考

http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html

[MongoDB]增删改查的更多相关文章

  1. 数据库——MongoDB增删改查

    MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...

  2. MongoDB - 增删改查及聚合操作

    目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...

  3. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

  4. 第二部分 Mongodb增删改查

    学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...

  5. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  6. MongoDB增删改查表文档

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  7. mongodb增删改查操作

    Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ...

  8. mongodb增删改查常用命令总结

    前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ...

  9. Python对MongoDB增删改查

    pip install pymongo import pymongo # 建立连接 client = pymongo.MongoClient() # 指定数据库 (不存在则会新建) db = clie ...

随机推荐

  1. bzoj2653: middle

    首先,对于每个询问,我们二分答案 然后对于序列中大于等于中位数的数,我们把它们置为1,小于中位数的数,置为-1 那么如果一个区间和大于等于0,那么就资磁,否则就不滋磁 这个区间和呢,我们可以用主席树维 ...

  2. iOS开发----音频播放、录音、视频播放、拍照、视频录制

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  3. python 学习笔记 8(闭包)

    30.  闭包 首先理清几个关系. 函数式编程 面向对象编程 : 对象 面向过程编程 : 函数 对象和函数都是一种逻辑方式来组织代码,为了提高可重复利用性(reusability). 而闭包作用和对象 ...

  4. Bzoj4066 简单题

    Time Limit: 50 Sec  Memory Limit: 20 MBSubmit: 2185  Solved: 581 Description 你有一个N*N的棋盘,每个格子内有一个整数,初 ...

  5. 动态添加和更改F7编辑器(div和editGrid列)

    //更改列编辑器 waf("#editGrid").wafGrid("setColumnConfig", "settlementType", ...

  6. webbench详解

    安装 mkdir -p /usr/local/man/man1 yum install ctags -y tar zxvf webbench-1.5.tar.gzcd webbench-1.5make ...

  7. 帮助理解委托、匿名委托、Lambda表达式还有事件

    写了一个小程序,能够很好的认识到这三个的用法 namespace Lambda { /// <summary> /// 实现根据指定运算形式 输出结果 /// </summary&g ...

  8. log4j属性详解

    Log4j有三个主要的组件:Loggers(记录器),Appenders  (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻 ...

  9. (转载)最长递增子序列 O(NlogN)算法

    原博文:传送门 最长递增子序列(Longest Increasing Subsequence) 下面我们简记为 LIS. 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则 ...

  10. 你所知道好玩有趣的 iOS URL schemes 有哪些?

    QQ的url是 mqq:// 微信是weixin:// 淘宝taobao:// 点评dianping:// dianping://search 微博 sinaweibo:// 名片全能王camcard ...