1.插入并保存文档      

  在插入数据之前,首先用mongodb Shell命令db.baseUser.find() 查找集合的数据。

      

想必大家能猜到结果,什么东西都没有,那接着来说说怎么向 baseUser 集合中插入数据。插入baseUser 的方法如下: 

首先定义一个baseUser变量,用来存放要插入的用户对象,其实很简单,然后调用文档对象的insert 方法来将文档插入。然后用命令db.baseUser.find()查看刚插入的数据。

对于批量插入shell客户端不支持,单个文档保存数据库时,会有一个消息头,由这个消息头来告诉此数据要插入到哪个文档中,批量插入,会将多个文档一次性的插入数据库,插入速度回明显替提高。批

量插入应用在程序中。

注意:

1.mongodb 不需要预先创建一个集合,而是在插入第一条数据时自动创建集合.

2.文档中可以存储任何结构的数据,但是在实际应用中存储的还是相同的文档类型的结合。

3.每次插入数据时候集合中都活有一个ID,名称为  "_id".

插入原理:

MongodDB在执行插入式,首先将插入的数据转换为BSON格式,然后MongoDB会对BSON进行解析,并检查是否存才_id键,_id键在插入式会自动生成。mongoDB对文档大小做了限制,1.8之前的版本,文档大小不能超过4MB,1.8版本之后支持16MB。没有的数据校验,就是简单的将数据插入数据库,这样做的坏处是允许插入无效的数据。好处是不会受到注入式的攻击,更安全。另外不像关系型数据库那样有那么多的限制。

2.删除文档

在删除文档之前我们还是先调用db.baseUser.find()来查看当前集合中的文档数据。

可以看到有两条数据。要删除文档中的数据我们之需要调用db.baseUSre.remove() 方法来删除文档数据,执行完命令后的结果为:

调用mongoDB的db.baseUser.remove({"name":"lisi"}) 方法来删除name为李四的文档,删除数据需要传入一个对象参数,参数代表查询条件,匹配上的数据就会删除。

注意:

remove()函数接受一个查询文档的可选参数,传入参数后,只有符号条件的数据被删除。如果什么参数都不传的情况下,当前文档的数据会被全部删除。但是,删除数据时永久性的不能恢复,重要的数据记得备份啊。

db.baseUser.remove() :  不会删除集合本身,原有的索引也会保留。

db.baseUser.drop() :删除速度会变快,会把整个集合都删掉,所以索引也不会保留。小伙伴们这里像关系型数据的 drop table 啊

   

我是刚写博客,看别人博客写的都比较漂亮啊,小伙伴们能否给推荐个比较好的博客插件。

 

MonogDB初探增加和删除的更多相关文章

  1. iOS --SQL的增加、删除、查找、修改

    iOS对于数据库的操作:增加.删除.查找.修改 首先需要创建一个数据库:本程序的数据库是在火狐浏览器里的插件里写的微量型数据库 火狐找查找SQLite Manager的步骤: 第一步:在工具栏找到附加 ...

  2. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常

    在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件.但对于数据绑定bindingList而言,没法响应 ...

  3. 使用AutoIT对增加和删除文件属性的实现

    编写历程: 前段日子,晚上下班回家,一个舍友问我可不可以将一个目录下的隐藏文件全部显示出来(变成非隐藏文件),我说可以. 之后就开始大刀阔斧的寻找方法来做这件事,上网找,说需要一个Windows下的小 ...

  4. 使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空

    使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空 添加 alter table table_name add field_name field_type; 添加,并设置默认值,及非 ...

  5. UITableView增加和删除、移动

    复习一下: 1.在控制器上添加一个UITableView,  暂时该UITableView控件变量名命名为为tableView, 设置控件代理,实现控制器的UITableViewDataSource, ...

  6. Oracle表字段的增加、删除、修改和重命名

    本文主要是关于Oracle数据库表中字段的增加.删除.修改和重命名的操作. 增加字段语法:alter table tablename add (column datatype [default val ...

  7. 10月16日下午MySQL数据库CRUD操作(增加、删除、修改、查询)

    1.MySQL注释语法--,# 2.2.后缀是.sql的文件是数据库查询文件. 3.保存查询. 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了).保存以后下次 ...

  8. Oracle 增加修改删除字段与添加注释

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...

  9. Entity Framework4.0 (六) EF4的 增加、删除、更改

    前面介绍了EF4的查询功能,主要是借助于LINQ的强大的查询功能和它简单的语法.让我们可以完全面向对象集体去进行查询,而不必去劳心处理那些关系型数据库表的操作.这样我们更容易把主要精力集中在业务逻辑上 ...

随机推荐

  1. AudioSpecificConfig

    2个字节. 下面蓝色的为AudioSpecificConfig部分: 000001e0h: 00 00 00 00 00 AF 0011 90 00 00 00 0F 09 00 02; .....? ...

  2. 如何卸载重装docker?

    http://blog.csdn.net/yangzhenping/article/details/43671843

  3. 【统计学习】主成分分析PCA(Princple Component Analysis)从原理到实现

    [引言]--PCA降维的作用 面对海量的.多维(可能有成百上千维)的数据,我们应该如何高效去除某些维度间相关的信息,保留对我们"有用"的信息,这是个问题. PCA给出了我们一种解决 ...

  4. jQuery技巧

    回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide 简单的手风琴 使两个DIV同等高度 在浏览 ...

  5. 管理Scope和Lifetime

    Nick Blumhardt’s Autofac lifetime primer 是一个学习Autofac Scope和Lifetime的好地方.这里有很多未理解的,混淆的概念,因此我们将尝试在这里完 ...

  6. js与多行字符串

    JS里并没有标准的多行字符串的表示方法,但是在用模板的时候,为了保证模板的可阅读性,我们又不可避免的使用多行字符串,所以出现了各种搞法,这里以一段jade的模板作为示例,简单总结和对比一下. 字符串相 ...

  7. 【BZOJ】3996: [TJOI2015]线性代数

    题意 给出一个\(N \times N\)的矩阵\(B\)和一个\(1 \times N\)的矩阵\(C\).求出一个\(1 \times N\)的01矩阵\(A\),使得\[ D = ( A * B ...

  8. JS typeof与instanceof的区别

    typeof 与 instanceof 通常是用来判断一个变量的类型,二者有如下区别: typeof: 判断一个变量的类型,返回值是字符串形式,返回结果有如下几种: number,boolean,st ...

  9. 用soapUI测试webservice

    测试webservice时,有时需要写一个客户端来向服务端发起请求才可以测试服务,最近看到一款工具soap ui,也可以调试VS2010中的程序. 首先要把webservice 发布到本地,网上已经有 ...

  10. 20155315庄艺霖--对做中学的理解及对c语言和Java的看法

    关于做中学的理解及技能训练的思考 在写这篇博客之前,我首先阅读了娄老师的博客,对做中学的概念很感兴趣.我们常说知识要学以致用,做中学强调的是在用的过程中有新的收获和体会来进一步巩固学习.细数我学过的课 ...