MongoDB增删改
一、数据库操作
显示现有的数据库,命令:show dbs 或者 databases;
示当前使用的数据库,命令:db
切换当前使用的数据库,命令:use 数据库名称
删除数据库,命令:db.dropDatabase()
二、Collection 操作
显示现有的集合,命令:show collections 或者 tables;
插入并保存文档 insert方法,可以单独插入一个文档,也可以插入多个,用“[ ]”即可,每个Doc必须小于16MB
db.user.insert({"user_id":"u1","score":});
删除文档 remove,只是删除文档,集合还在;如果使用 drop命令,会连带集合和索引都删掉
db.user.remove({"user_id":"u1"});
db.user.drop();
文档替换,命令: db.集合名称. update(条件,新的文档);
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
$set :指定一个字段的值,如果字段不存在,会创建一个
db.user.update({"user_id":"u1"},{$set:{"name":"name1"}});
$unset :删掉某个字段
db.user.update({"user_id":"u1"},{$unset:"name"});
$inc : 用来增加已有键的值,如果字段不存在,会创建一个。只能用于整型、长整型、或双精度浮点型的值
db.user.update({"user_id":"u1"},{$inc:{"score":5}});
$push:向已有数组的末尾加入一个元素,要是没有就新建一个数组
db.user.update({"user_id":"u1"},{$push:{"xueke":"hx"}});
$each:通过一次$push来操作多个值
db.user.update({"user_id":"u1"},{$push:{"xueke":{$each:["yy","gs"]}}});
$slice:限制数组只包含最后加入的n个元素,其值必须是负整数
db.user.update({"user_id":"u1"},{$push:{"xueke":{$each:["yy","gs"],$slice:-2}}}

$sort:对数组中的元素,按照指定的字段来对数据进行排序(1为升序,-1为降序),然后再按照slice删除。

db.user.update({"user_id":"u1"},{$push:{"xueke":{$each:["yy","yw","sx"],$slice:-4,$sort:-1}}});

注意:不能只将$slice或者$sort与$push配合使用,且必须使用$each
$ne:判断一个值是否在数组中,如果不在则添加进去
db.user.update({"user_id":"u1","xueke":{$ne:"xd"}},{$push:{"xueke":"xd"}});
$addToSet:将数组作为数据集使用,以保证数组内的元素不会重复
db.user.update({"user_id":"u1"},{$addToSet:{"xueke":"english"}});
$pop :从数组一端删除元素,{$pop:{key:1}},从末尾删掉一个,-1则从头部删除
db.user.update({"user_id":"u1"},{$pop:{"xueke":}});
$pull:按照条件来删除所有匹配的元素
db.user.update({"user_id":"u1"},{$pull:{"xueke":"yy"}});
12:$:用来修改第一个匹配的元素
db.user.update({"user_id":"u1"},{$set:{"xueke.1":"yy"}});
save方法:如果文档存在就更新,不存在就新建,主要根据”_id”来判断
db.user.save({"_id":"ObjectId("5b5862e4ac45f21aabc51432")","user_id":"u2","name":"n2"});
MongoDB增删改的更多相关文章
- 数据库——MongoDB增删改查
MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...
- MongoDB - 增删改查及聚合操作
目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...
- [MongoDB]增删改查
摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD ...
- 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 ...
随机推荐
- 为centos7配置阿里yum源遇到的问题以及解决方法
[问题背景] 卸载安装的Ambari,之前都是因为卸载不干净.这次重写安装,卸载完之后,发现httpd无法启动,所以想卸载httpd进行重新安装,但是执行命令yum list | grep httpd ...
- fdisk创立主分区过程
[root@localhost ~]# fdisk /dev/sdb …省略部分输出… Command (m for help): p #显示当前硬盘的分区列表 Disk /dev/sdb: 21.5 ...
- javascript 的垃圾回收机制讲一下
定义:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束. 像 C 这样的编程语言,具有低级内存管理原语,如 malloc()和 free().开发人员使用这些原语显式地对操作系统的内存进行 ...
- <HTML/CSS>BFC原理剖析
本文讲了BFC的概念是什么: BFC的约束规则:咋样才能触发生成新的BFC:BFC在布局中的应用:防止margin重叠(塌陷,以最大的为准): 清除内部浮动:自适应两(多)栏布局. 1. BFC是什么 ...
- mybatis 的 <![CDATA[ ]]> 标签作用
有个细节一直没有注意到,今天mark一下: mybatis进行时间比较的时候我们会这么写,一直都是在复制粘贴所以没有注意,一个标签<![CDATA[ ]]> 今天在做另外一个有时间比较sq ...
- 简易的CRM系统案例之易的CRM系统案例之JSP+MySQL+SSH框架版本
主要对上一篇hibernate与Spring进行整合改进 简易的CRM系统案例之Struts2+Hibernate3+JSP+MySQL版本 bean-base.xml <?xml versio ...
- YApi内部部署文档
旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API 1.安装Node.js环境(7.6+) 1.官网下载适合的nodejs版本放置在/usr/package ...
- utf-8的中文是一个字符占几个字节
utf-8的中文是一个字符占几个字节 英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字 ...
- 010-多线程-JUC集合-Queue-ConcurrentLinkedQueue
一.概述 ConcurrentLinkedQueue是线程安全的队列,它适用于“高并发”的场景. 它是一个基于链接节点的无界线程安全队列,按照 FIFO(先进先出)原则对元素进行排序.队列元素中不可以 ...
- 【linux基础】如何开机自启动某个程序-linux工具-ubuntu
前言 实际使用中应用程序或者服务需要开机自启动,而不是人为手动开启运行,那么,该如何做呢,本文对此进行介绍. 操作过程 1. 确定系统的桌面环境: 具体可参考here; 2. 如何自启动: 博主ubu ...