MongoDB 快速入门--高级
引用
--------->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 快速入门--高级相关推荐
- MongoDB 快速入门实战教程最新版
在上一篇 <MongoDB 实战教程:数据库与集合的 CRUD 操作篇> 中,我们学习了MongoDB 与 NoSQL 的关系. MongoDB 的安装.数据类型.MongoShell.创 ...
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
[引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...
- MongoDB 快速入门
文章目录 1 MongoDB介绍 1.1 应用场景 1.2 什么时候选择MongoDB 1.3 MongoDB简介 1.4 MongoDB体系结构 1.5 数据类型 1.6 MongoDB的特点 2 ...
- 【探花交友】学习MongoDB快速入门上手
目录 2.MongoDB简介 1.1.MongoDB简介 1.2.MongoDB的特点 1.3 数据类型 3.MongoDB入门 2.1.数据库以及表的操作 2.2.新增数据 2.3.更新数据 2.4 ...
- MongoDB快速入门(五)- Where子句
RDBMS Where子句等效于MongoDB 查询文档在一些条件的基础上,可以使用下面的操作 操作 语法 示例 RDBMS等效语句 Equality {<key>:<value&g ...
- 高性能服务器架构之路-MongoDB(一):MongoDB快速入门(java版)(草稿)
最近想通了,辞了职,原本谈好的新公司offer也给推掉,义无反顾的和朋友开始做自己的产品,反正明年毕业,失败了也没什么损失.主做应用服务器的客串android/windows phone客户端,计划未 ...
- Docker快速入门—高级篇【快速浏览版】
文章目录 1.Mysql复杂安装详细解说 1.1 安装mysql主从复制 2.Redis复杂安装详细解说 2.1 分布式存储算法 2.2 Redis主从安装 2.2.1 Redis集群3主3从的说明 ...
- 尚硅谷-SpringBoot高级-检索-Elasticsearch快速入门
前面我们安装好了ElasticSearch,我以后就简称他为ES,而一些人还不知道基本的使用,那我们接下来做一个快速入门,了解一下他的使用方法,以及一些基本概念,方便我们后来整合,那么要学习ES最好的 ...
- 【Golang 快速入门】高级语法:反射 + 并发
Golang 快速入门 Golang 进阶 反射 变量内置 Pair 结构 reflect 结构体标签 并发知识 基础知识 早期调度器的处理 GMP 模型 调度器的设计策略 并发编程 goroutin ...
- Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇
Pandas高级数据分析快速入门之一--Python开发环境篇 Pandas高级数据分析快速入门之二--基础篇 Pandas高级数据分析快速入门之三--数据挖掘与统计分析篇 Pandas高级数据分析快 ...
最新文章
- 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )
- 重新定义智能平板电脑 第四范式与联想达成战略合作
- 如何找到status group里定义的所有status value
- 【开源项目】特斯拉+树莓派实现车牌识别检测系统
- 中小企业ERP实施的项目管理
- swing程序 过时拉嘛_从关闭或过时的应用程序导入文件
- 公司电脑可以做无盘系统吗?怎么优化速度?
- 专访商汤联合创始人林达华:商汤的开源战略,从算法做起
- WebUtils-网络请求工具类
- 第七次会议(4.22)
- 循序渐进之Spring AOP(2) - 基本概念
- 机器学习之初识SVM
- Unity3D 串口连接
- 如何写出布局好看而且漂亮的博客
- JQuery TreeGrid 组件详解
- 自用力扣笔记备忘录——数组tag简单题
- 仿淘宝 打开app时识别淘口令和解析保存到本地的带二维码图片的网址
- 魔方机器人大赛——总结感悟篇:干货篇
- 日常生活中常用的五星级句子
- php动态创建菜单,php创建无限级树型菜单