上一博客写了集合的管理,集合里面存放的是文档,因此聪明的你应该能想到这篇是学习文档管理。要说标题应该是文档管理,不过对于文档的管理都是先获得集合对象,在集合对象上调用方法管理文档,所以标题还是对集合的管理。

在集合管理中,要管理集合首先要获得这个集合,同样文档管理也是要先获得集合对象,然后通过集合对象管理文档。

一、将文档添加到集合中

为什么要先说添加呢,因为不添加就没法说下面的查找。将文档添加到一个集合中,首先需要得到集合对象,通过几个对象调用insert(document)或save(document)方法。document对象是被转换成BSON并存储在集合中的格式正确的JS对象。下面图中使用insert、save两种方式添加文档。

二、在集合中查找文档

查找英文单词有search、find等(学习下英语,毕竟我差一分没过四级,你可能会问除了这两个还有其他的吗?毕竟用的是等,其实我想告诉你我的英文词典中就这两个,其他的我还真不知道有没有)。好,闲篇到此结束。在集合中查找没想到是用find,还没超过我的知识范围.下图中可以看到有使用find([query])方法来查找文档。query指定包含字段和值得查询文档与集合中的文档匹配。

三、从集合中删除文档

删除的话是通过集合对象调用remove([query])来删除。不过这里如果不带query直接使用Remove()来删除则会报错,如下图,如果真想删除所有的可以使用remove({})传一个空js对象。

上面在学习集合中查找添加文档时添加了两个文档。这里又添加了一个文档,方便删除查看效果。

在上面的图中可以看到,直接使用remove()时是报错的。使用remove({})可以删除全部文档。

四、更新集合中的文档

其实对于集合的管理在第一篇博客http://www.cnblogs.com/5ishare/p/5628126.html中也有简单的提到,这次呢还是简单的说一下,较复杂的后面会请听下回分解。

要更新集合中的文档首先应得到该集合。然后使用save(object)方法来保存对某一个对象的更改。也可以使用update(query,update,options)方法来查询集合中的文档,然后在它们被找到时更新它们。 query参数指定了字段和值与集合这的文档匹配的一个查询文档。update参数为一个对象,它指定在作出更新时使用的更新运算符。如$inc递增该字段的值。$设置字段的值,$push将一个条目推送到数组等。 option参数是一个对象,有两个布尔值属性,multi和upsert。upsert为true时若没有找到就创建一个新的文档。如果multi为true,与匹配的所有文档都被更新,否则只有第一个文档被更新。

下图中首先创建了3个文档,然后更新age=25的,不过multi=false,所以只更新第一个文档,还有一个age=25的存在。

对于创建文档也挺有意思,之前都是一个一个的创建,刚才试了下批量创建,下面的图也看到了要使用数组的形式添加.

MongoDB之集合管理二的更多相关文章

  1. MongoDB之集合管理一

    最近的几篇博客都是关于MongoDB的,虽然个人感觉也没多少知识点,但没想到竟然有转载我的博客的,不管有经过我同意还是没经过我同意,说明写的应该还是有价值的,这也是我写博客的一个动力之一吧.上一博客学 ...

  2. mongodb用户权限管理(二)

    数据库 分配用户权限 有了创建语法,和参数说明,接下来开始实践. 注意,还有一点,账号是跟着数据库绑定的,在那个库里授权,就在那个库里验证(auth) 否则会失败 创建 账号管理授权权限 的账号 &g ...

  3. MongoDB系列---集合与文档操作03

    MongoDB-——Collection 学习大纲: 1.集合操作 2.文档操作 知识回顾: 上一篇我们讲述了如何对MongoDB的权限和用户进行日常的基本操作,来达到我们对数据库的基本安全保障. 一 ...

  4. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  5. MongoDB图形化管理工具

    NoSQL的运动不止,MongoDB 作为其中的主力军发展迅猛,也带起了一股开发图形化工具的风潮:气死反过来说,看一个产品是否得到认可,可以侧面看其第三方工具的数量和成熟程度:简单的收集了MongoD ...

  6. mongoDB 删除集合后,空间不释放

    mongoDB 删除集合后,空间不释放,添加新集合,没有重新利用之前删除集合所空出来的空间,也就是数据库大小只增不减. 方法有: 1.导出导入 dump & restore 2.修复数据库 r ...

  7. mongoDB 删除集合后,空间不释放的解决方法

    mongoDB 删除集合后,空间不释放,添加新集合,没有重新利用之前删除集合所空出来的空间,也就是数据库大小只增不减. 方法有: 1.导出导入 dump & restore 2.修复数据库 r ...

  8. mongodb用户权限管理的CRUD

    https://blog.csdn.net/weixin_34332905/article/details/88759759?utm_medium=distribute.pc_relevant.non ...

  9. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

随机推荐

  1. Code Review Checklist and Guidelines for C# Developers

    Checklist1. Make sure that there shouldn't be any project warnings.2. It will be much better if Code ...

  2. EasyUI 让dialog中的treegrid的列头固定

    先上效果: 最主要是在treegrid要加上"fit:true "如果不加那么就会用diglog的滚动条,导致treegrid的头就没办法固定. Code<div id=&q ...

  3. C# volatile 关键字

    volatile 就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier).它是被设计用来修饰被不同线程访问和修改的变量.如果不加入volatile,基本上会导 ...

  4. 如何: 在 VS中的设计时刻主从表绑定控件到数据库

    这个示例展示了如何在 Visual Studio 2005 的设计时刻,把一个 data-aware 控件 (XtraGrid.XtraPivotGrid.XtraVerticalGrid 等) 绑定 ...

  5. js form 表单 重置 清空

    清空 和 重置的差异是 清空是彻底清空input内容即便初始值value有值,重置是将input内容重置为value初始状态 很简单记录下 方便之后使用 //重置 //document.getElem ...

  6. 11-使用EF操作数据库

    本篇博客对应视频讲解 回顾 上一篇教程我们讲了XML与JSON的序列化问题,我们可以看到序列化实际上也是不同形式的转换,我们通常要以字节流的形式做中转.同时我们也可以看到,对于序列化这种常见的需求,我 ...

  7. A tiny program to benchmark image transpose algorithms

    Here is the code: #include <stdio.h> #include <xmmintrin.h> #include <windows.h> t ...

  8. 文本比较算法Ⅱ——Needleman/Wunsch算法的C++实现【求最长公共子串(不需要连续)】

    算法见:http://www.cnblogs.com/grenet/archive/2010/06/03/1750454.html 求最长公共子串(不需要连续) #include <stdio. ...

  9. The Beam Model:Stream & Tables翻译(上)

    作者:周思华 欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文尝试描述Beam模型和Stream & Table理论间的关系(前者描述于数据流模型论文.the-world-beyond ...

  10. Day 34 面试题