实例数据库caliven、集合users

一、插入文档

  1.插入文档

    db.[documentName].insert({})

  2.批量插入文档 、shell 这样执行是错误的db.[documentName].insert([{},{},{},……..]) shell不支持批量插入,

    想完成批量插入可以用mongo的应用驱动或是shell的for循环:

    for(var i=0; i<=10;i++){

      db.[documentName].insert({name:i})

    }

  3.Save操作:save操作和insert操作区别在于当遇到_id相同的情况下,save完成保存操作,insert则会报错。

二、删除文档

   1.删除列表中所有数据

    db.[documentName].remove()

    集合的本身和索引不会别删除

  2.根据条件删除

    db.[documentName].remove({})

    删除集合users中name等于Tom的纪录 db.users.remove({name:”Tom”})

  3.小技巧:如果你想清除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引的办法,比直接用remove的效率和高很。

三、更新文档

  1.强硬的文档替换式更新操作

    db.[documentName].update({查询器},{修改器})

    强硬的更新会用新的文档代替老的文档

  2.主键冲突的时候会报错并且停止更新操作

    因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错

  3.insertOrUpdate操作

    目的:查询器查出来数据就执行更新操作,查不出来就替换操作

    做法:db.[documentName].update({查询器},{修改器},true)

  4.批量更新操作

    默认情况当查询器查询出多条数据的时候默认就修改第一条数据

    如何实现批量修改:db.[documentName].update({查询器},{修改器},false, true)

  5.使用修改器来完成局部更新操作

修改器名称

语法

案例
$set

{$set:{field: value}}

{$set:{name:”uspcat”}}

它用来指定一个键值对,如果存在键就进行修改不存在则进行添加.

$inc

{ $inc : { field : value } }

{ $inc : { "count" : 1 } } 

只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作.

$unset

{ $unset : { field : 1} }

 { $unset : { “name":1 }

他的用法很简单,就是删除指定的键
 $push

{ $push : { field : value } }

{ $push : { books:”JS”}

1.如果指定的键是数组增追加新的数值

2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array

3.如果不存在指定的键则创建数组类型的键值对

$pushAll

{ $pushAll : { field : array } }

{ $push : { books:[“EXTJS”,”JS”]}

用法和$push相似他可以体谅添加数组数据

$addToSet

{ $addToSet: { field : value } }

{ $addToSet: { books:”JS”}

目标数组存在此项则不操作,不存在此项则加进去

$pop

{$pop:{field: value}}

{$pop:{name:1}} {$pop:{name:-1}}

从指定数组删除一个值1删除最后一个数值,-1删除第一个数值

$pull

{ $pull: { field : value } }

{ $pull : { “book" : “JS” } } 

删除一个被指定的数值

 $pullAll

{ $pullAll: { field : array} }

 { $pullAll: { “name":[“JS”,”JAVA”] }

一次性删除多个指定的数值

$

{ $push : { field : value } }

{ $push : { books:”JS”}

1.数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($)

例子: 例如有文档{name:”YFC”,age:27,books:[{type:’JS’,name:”EXTJS4”},{type:”JS”,name:”JQUERY”},{type:”DB”,name:”MONGODB”}]}

我们要把type等于JS的文档增加一个相同的作者author是USPCAT

办法: db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}})

MongoDB笔记(三):Document 数据插入、删除、更新的更多相关文章

  1. 09Microsoft SQL Server 表数据插入,更新,删除

    Microsoft SQL Server 表数据插入,更新,删除 向表中插入数据 INSERT INTO insert into tb1 values(0004,'张凤凤') insert into ...

  2. 09Oracle Database 数据表数据插入,更新,删除

    Oracle Database 数据表数据插入,更新,删除 插入数据 Insert into table_name(column) values(values); insert into studen ...

  3. 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表

    最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...

  4. .NET 百万级 大数据插入、更新 ,支持多种数据库

    功能介绍  (需要版本5.0.44) 大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库 ...

  5. MYSQL数据插入、更新及删除

    上文讲到创建数据表,本文介绍create table后的数据插入: 一.通过insert into ...values...插入 insert into tablename (column1,colu ...

  6. MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新

    1.内连接查询:inner join ... on 只有满足条件的记录才能够出现在结果关系中,即完全相等.自连接查询是一种特殊的内连接查询. 2.外连接查询: 1>左外连接 / 左连接:返回包括 ...

  7. mongodb笔记(三)

    1.删除文档(remove()函数) 在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯. 语法: db.collection.remove( <q ...

  8. SQL SERVER数据库三种数据插入方式

    数据插入:INSERT INTO A(CBM,CMC) VALUES('1','测试')--单条数据插入INSERT INTO A(CBM,CMC)SELECT '1','测试'--单条数据插入INS ...

  9. MYSQL初级学习笔记三:数据的操作DML!(视频序号:初级_24,25,36)

    知识点五:数据的操作DML(24,25,36) 插入数据: --测试插入记录INSERT CREATE TABLE IF NOT EXISTS user13( id TINYINT UNSIGNED ...

随机推荐

  1. (十一)数组array

    变量:只能存一个值,数组可以存多个值 (1)普通数组,索引下标是整数: 1)定义: 方法一:一次赋一个值:语法:数组名[下标]=变量值 array[1]=linux array[2]=shell 方法 ...

  2. HDU 1426 Sudoku Killer【DFS 数独】

    自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品— ...

  3. ASP.NET Core 2.2 基础知识(三) 静态文件

    什么是静态文件? HTML,CSS,JS,图片等都叫做静态文件. 要想提供静态文件给客户端,需要注册静态文件中间件. 我们先分别添加一个 WebAPI 项目,一个 Razor 视图项目,比较两个项目的 ...

  4. [CF494C]Helping People

    题意:有$n$个穷人,每个穷人有$a_i$的钱,有一个富人决定做$q$次捐赠$(l_i,r_i,p_i)$,表示他有$p_i$的概率给$[l_i,r_i]$的人捐$1$的钱,捐赠的价值为捐赠后最富的人 ...

  5. 【二分】【动态规划】Codeforces Round #393 (Div. 1) B. Travel Card

    水dp,加个二分就行,自己看代码. B. Travel Card time limit per test 2 seconds memory limit per test 256 megabytes i ...

  6. 【Floyd】【Dilworth定理】【最小路径覆盖】【匈牙利算法】bzoj1143 [CTSC2008]祭祀river

    Dilworth定理,将最长反链转化为最小链覆盖.//貌似还能把最长上升子序列转化为不上升子序列的个数? floyd传递闭包,将可以重叠的最小链覆盖转化成不可重叠的最小路径覆盖.(引用:这样其实就是相 ...

  7. 1.6(java学习笔记)static关键字

    static关键字 1.static修饰变量也称静态变量,静态变量存放在静态区被该类的所有对象共享. 例如,定义了一个类class User{static Sring city = "a城& ...

  8. java.io.IOException Too many open files 解决

    网上很多关于解决这个问题的博客,没有提到需要查看JAVA进程的limits参数设置 命令 : cat /proc/进程PID/limits   有时就会发现该进程的 open files还是1024默 ...

  9. 最短路径之迪杰斯特拉算法的Java实现

    Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法.该算法被称为是“贪心算法”的成功典范.本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码. 一.知识准备 ...

  10. SqlServer_删除重复行只保留一条记录

      前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条   思路: 1.找出存在重复数据的记录,并取重复数据中最大的Id值 2.删 ...