引用

--------->DBRefs

DBRef的形式:

{ $ref : , $id : , $db :  }

  • $ref:集合名称
  • $id:引用的id
  • $db:数据库名称,可选参数
{"_id":ObjectId("53402597d852426020000002"),"address": {"$ref": "address_home","$id": ObjectId("534009e4d852427820000002"),"$db": "w3cschoolcc"},"contact": "987654321","dob": "01-01-1991","name": "Tom Benzamin"
}

MongoDB 原子操作

$set

用来指定一个键并更新键值,若键不存在并创建。

{ $set : { field : value } }

$unset

用来删除一个键。

{ $unset : { field : 1} }

$inc

$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作。

{ $inc : { field : value } }

$push

{ $push : { field : value } }

把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去。

$pushAll

同$push,只是一次可以追加多个值到一个数组字段内。

{ $pushAll : { field : value_array } }

$pull

从数组field内删除一个等于value值。

{ $pull : { field : _value } }

$addToSet

增加一个值到数组内,而且只有当这个值不在数组内才增加。

$pop

删除数组的第一个或最后一个元素

{ $pop : { field : 1 } }

$rename

修改字段名称

{ $rename : { old_field_name : new_field_name } }

$bit

位操作,integer类型

{$bit : { field : {and : 5}}}

ObjectId

正则表达式

考虑以下 posts 集合的文档结构,该文档包含了文章内容和标签:

{
   "post_text": "enjoy the mongodb articles on tutorialspoint","tags": ["mongodb","tutorialspoint"]
}

使用正则表达式

以下命令使用正则表达式查找包含 w3cschool.cc 字符串的文章:

>db.posts.find({post_text:{$regex:"w3cschool.cc"}})

>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})//区分大小写

var name=eval("/" + 变量值key +"/i"); //如果要使用变量就必须用eval

GridFS

GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。

GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。

>mongofiles.exe -d gridfs[数据库名称] put song.mp3

固定集合(Capped Collections)

顾名思义就是说这个集合的大小是固定的,可以在创建集合的时候通过size来指定大小

我们通过createCollection来创建一个固定集合,且capped选项设置为true:

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

还可以指定文档个数,加上max:1000属性:

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

判断集合是否为固定集合:

>db.cappedLogCollection.isCapped()

如果需要将已存在的集合转换为固定集合可以使用以下命令:

>db.runCommand({"convertToCapped":"posts",size:10000})

以上代码将我们已存在的 posts 集合转换为固定集合。

转载于:https://www.cnblogs.com/student-note/p/6194343.html

MongoDB 快速入门--高级相关推荐

  1. MongoDB 快速入门实战教程最新版

    在上一篇 <MongoDB 实战教程:数据库与集合的 CRUD 操作篇> 中,我们学习了MongoDB 与 NoSQL 的关系. MongoDB 的安装.数据类型.MongoShell.创 ...

  2. MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门

    [引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...

  3. MongoDB 快速入门

    文章目录 1 MongoDB介绍 1.1 应用场景 1.2 什么时候选择MongoDB 1.3 MongoDB简介 1.4 MongoDB体系结构 1.5 数据类型 1.6 MongoDB的特点 2 ...

  4. 【探花交友】学习MongoDB快速入门上手

    目录 2.MongoDB简介 1.1.MongoDB简介 1.2.MongoDB的特点 1.3 数据类型 3.MongoDB入门 2.1.数据库以及表的操作 2.2.新增数据 2.3.更新数据 2.4 ...

  5. MongoDB快速入门(五)- Where子句

    RDBMS Where子句等效于MongoDB 查询文档在一些条件的基础上,可以使用下面的操作 操作 语法 示例 RDBMS等效语句 Equality {<key>:<value&g ...

  6. 高性能服务器架构之路-MongoDB(一):MongoDB快速入门(java版)(草稿)

    最近想通了,辞了职,原本谈好的新公司offer也给推掉,义无反顾的和朋友开始做自己的产品,反正明年毕业,失败了也没什么损失.主做应用服务器的客串android/windows phone客户端,计划未 ...

  7. Docker快速入门—高级篇【快速浏览版】

    文章目录 1.Mysql复杂安装详细解说 1.1 安装mysql主从复制 2.Redis复杂安装详细解说 2.1 分布式存储算法 2.2 Redis主从安装 2.2.1 Redis集群3主3从的说明 ...

  8. 尚硅谷-SpringBoot高级-检索-Elasticsearch快速入门

    前面我们安装好了ElasticSearch,我以后就简称他为ES,而一些人还不知道基本的使用,那我们接下来做一个快速入门,了解一下他的使用方法,以及一些基本概念,方便我们后来整合,那么要学习ES最好的 ...

  9. 【Golang 快速入门】高级语法:反射 + 并发

    Golang 快速入门 Golang 进阶 反射 变量内置 Pair 结构 reflect 结构体标签 并发知识 基础知识 早期调度器的处理 GMP 模型 调度器的设计策略 并发编程 goroutin ...

  10. Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇

    Pandas高级数据分析快速入门之一--Python开发环境篇 Pandas高级数据分析快速入门之二--基础篇 Pandas高级数据分析快速入门之三--数据挖掘与统计分析篇 Pandas高级数据分析快 ...

最新文章

  1. 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )
  2. 重新定义智能平板电脑 第四范式与联想达成战略合作
  3. 如何找到status group里定义的所有status value
  4. 【开源项目】特斯拉+树莓派实现车牌识别检测系统
  5. 中小企业ERP实施的项目管理
  6. swing程序 过时拉嘛_从关闭或过时的应用程序导入文件
  7. 公司电脑可以做无盘系统吗?怎么优化速度?
  8. 专访商汤联合创始人林达华:商汤的开源战略,从算法做起
  9. WebUtils-网络请求工具类
  10. 第七次会议(4.22)
  11. 循序渐进之Spring AOP(2) - 基本概念
  12. 机器学习之初识SVM
  13. Unity3D 串口连接
  14. 如何写出布局好看而且漂亮的博客
  15. JQuery TreeGrid 组件详解
  16. 自用力扣笔记备忘录——数组tag简单题
  17. 仿淘宝 打开app时识别淘口令和解析保存到本地的带二维码图片的网址
  18. 魔方机器人大赛——总结感悟篇:干货篇
  19. 日常生活中常用的五星级句子
  20. php动态创建菜单,php创建无限级树型菜单

热门文章

  1. Linux paste命令
  2. centos绑定多个ip CentOS一个网卡设置多个IP
  3. error CS1010 CS8025 CS1012 CS1525 常见文档错误解决
  4. Devexpress使用记录
  5. android 线程使用监控思路分享
  6. BZOJ5192[Usaco2018 Feb] New Barns
  7. BZOJ1036[ZJOI2008] 树的统计
  8. vue项目,路由跳转页面后滚动条自动回到顶部
  9. js基础-8-浅拷贝和深拷贝
  10. 黑马vue实战项目-(四)商品分类页面的开发