[MongoDB]增删改查
摘要
上篇文章学习了mongodb在windows上的安装,以及如何开启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]增删改查的更多相关文章
- 数据库——MongoDB增删改查
MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...
- MongoDB - 增删改查及聚合操作
目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...
- springMVC操作mongoDB增删改查
下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...
- 第二部分 Mongodb增删改查
学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...
- MongoDB(六)java操作mongodb增删改查
java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...
- MongoDB增删改查表文档
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...
- mongodb增删改查操作
Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ...
- mongodb增删改查常用命令总结
前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ...
- Python对MongoDB增删改查
pip install pymongo import pymongo # 建立连接 client = pymongo.MongoClient() # 指定数据库 (不存在则会新建) db = clie ...
随机推荐
- js-JavaScript高级程序设计学习笔记3
第五章 引用类型 1.使用new操作符和Date构造函数创建日期对象. 2.创建特定日期有两个方法--Date.parse()和Date.UTC().后者小时数为0时显示时间是8点,应该是因为本地是东 ...
- 【BZOJ-1260】涂色paint 区间DP
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 1147 Solved: 698[Submit][Sta ...
- 【codevs1043】 方格取数
http://codevs.cn/problem/1043/ (题目链接) 题意 N*N的方格,每个格子中有一个数,寻找从(1,1)走到(N,N)的两条路径,使得取到的数的和最大. Solution ...
- 一、swoole安装
说明:swoole扩展需要安装php环境,这里就不说了. 1.有了PHP环境后,即可安装swoole扩展. swoole扩展下载地址:https://github.com/swoole/swoole- ...
- PHP守护进程
php也是可以直接进行守护进程的启动与终止的,相对于shell来说会简单很多,理解更方便,当然了php的守护进程要实现自动重启还是要依赖于shell的crontab日程表,每隔一段时间去执行一次脚本看 ...
- ARPSpoofing教程(四) - 捕获并分析数据包
本程序的主要目标是展示如何解析所捕获的数据包的协议首部. 这个程序可以称为UDPdump,打印一些网络上传输的UDP数据的信息. 1: #include"pcap.h" 2: ty ...
- iOS - 沙盒规范
1.模拟器沙盒目录文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library. 因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件 ...
- BZOJ1202 [HNOI2005]狡猾的商人&&BZOJ3436小K的农场
差分约束第三题 传送门: 很明显的差分约束,d[y]-d[x-1]>=v d[y]-d[x-1]<=v 根据这个建图然后跑bellman-ford就可以了. //BZOJ 1202 //b ...
- 机器学习笔记--KNN算法2-实战部分
本文申明:本系列的所有实验数据都是来自[美]Peter Harrington 写的<Machine Learning in Action>这本书,侵删. 一案例导入:玛利亚小姐最近寂寞了, ...
- python 培训之 装饰器
1. 高阶函数 接收 函数作为参数,返回函数. 2. 函数闭包 3. 接收一个函数为参数,对其进行包装,然后返回一个包装函数(tip:包装函数中调用并返回参数函数. #! /usr/env/pytho ...