`
ppxieppp
  • 浏览: 49128 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

MongoDB 修改器

阅读更多

命令:

$inc 用来增加已有键的值,或者在键不存在的时候创建一个键,它只能修改整数型或浮点型,比如统计累加、投票.它键的值必须为数字,不能使用字符串、数组等其他值.
$set 用来指定一个键的值,如果这个键没有就创建它.有就修改.它还可以修改内嵌文档,甚至可以修改键的数据类型.
$unset 用来删除,将键完全删除.
$push 如果指定的键已经存在,它会向已有的数组末尾加入一个元素,要是没有就会创建一个数组.
$ne 如果一个值不在数组里面就把它加进去.
$addToSet 同上,有时候ne根本行不通,有些时候更适合用这个.它可以避免重复.
$each addToset和它组合起来可以添加多个不同的值,而用ne和push组合就不能实现.
$pop 可以从数组任何一端删除元素,{$pop : {key : 1}}1表示从末尾删除.-1表示从头部开始.
$pull 根据特定的条件来删除元素.它会将所有匹配的部分删掉.
$lt $lte 小,小于等于.
$gt $gte 大,大于等于.
$ne 表示不等于.它能用于所有类型的数据.
$in 可以用来查询一个键的多个值.
$nin 与之相反.
$or 更通用,用来完成多个键值的任意给定值.
$not 元条件句,可以用在任何其他条件之上.取模($mod)
$exists 用来条件判定键值是否已经存在.
$all 用来通过多个元素来匹配数组.
$size 可以用其查询制定长度的数组,size并不能与其他查询子句组合,但是这种查询可以通过在文档中添加一个size键的方式来实现.这样每次向指定数组添加元素的时候,同时增加size的值.不幸的是,这种技巧并不能与addToSet操作符同时使用.
$slice 返回数组的一个子集合.它也可以返回指定地方的指定条数.如果数组长度不够则返回指定地方之后的所有数据.另外,除非特别声明,否则使用slice时将返回文档中的所有键,这与其他的不太一样.
$elemMatch 它会限定条件进行分组,仅当需要对一个内嵌文档的多个键操作时才会用到.
$where 用它可以执行任意JavaScript作为查询的一部分,这就使得查询能做(几乎)任何事情.最典型的就是比较两个文档的键的值是否相等.一定要避免使用where.因为它在速度上要比常规查询慢很多,只有走投无路才考虑.
将常规查询作为前置过滤,与where组合使用可以不牺牲性能.如果可能的话,用索引根据非where子句进行过滤,where只用于对结果进行调优.


结论:
条件句是内层文档的键,而修改器则是外层文档的键.一个键可以有多个条件,但是一个键不能对应多个更新修改器.比如修改器文档不能同时含有$inc和$set.因为修改了两次了,但是对于查询条件句就没有这种限定.
分享到:
评论

相关推荐

    mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

    对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键

    MongoDB增删查改

    MongoDB增删查改

    MongoDB_Demo

    //2、通过uri方式连接MongoDB uri根据选择的数据库修改登录用户dzs MongoClientURI mongoClientUri =new MongoClientURI(uri); MongoClient mongoclient =new MongoClient(mongoClientUri); //连接到数据库 ...

    MongoDB权威指南(中文版)高清

    243.2 删除文档 243.3 更新文档 253.3.1 文档替换 263.3.2 使用修改器 273.3.3 upsert 363.3.4 更新多个文档 383.3.5 返回已更新的文档 383.4 瞬间完成 413.4.1 安全操作 413.4.2 捕获“常规”...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    3.3.2 使用修改器 3.3.3 upsert和save更新 3.3.4 修改多个文档 3.3.5 修改文档并返回修改后的文档 3.4 数据库响应 3.4.1 安全操作 3.4.2 捕获异常 3.5 客户端请求和MongoDB数据库连接 3.6 本...

    电子书:MongoDB权威指南(中文版)

    263.3.2 使用修改器 273.3.3 Upsert 363.3.4 更新多个文档 383.3.5 返回已更新的文档 383.4 瞬间完成 413.4.1 安全操作 413.4.2 捕获“常规”错误 423.5 请求和连接 43第4 章 查询 454.1 find ...

    mongodb-replset-configurator:MongoDB ReplSet 配置器

    MongoDB ReplSet 配置器 这是一个允许您在不访问 MongoDB shell 的情况下配置 MongoDB 副本集的程序。 使用了以下环境变量。 MRSC_ID(必填):副本集的ID MRSC_SERVERS(必填):Replica Set的服务器地址,通过...

    djongo:Django和MongoDB数据库连接器

    唯一使您可以将Django与MongoDB结合使用而无需更改Django ORM的连接器 在不更改Django ORM的情况下,将MongoDB用作Django项目的后端数据库。 使用Django Admin GUI在MongoDB中添加和修改文档。 用法: 安装djongo:...

    《10天掌握MongoDB》2012完整版.pdf[带书签]

    更新文档-修改器 定位操作符("$")-神马是定位 定位操作符("$")-未知 FINDANDMODIFY-有神马不同 FINDANDMODIFY-返回已更新的文档 FINDANDMODIFY-实现自增标识 其他 第三天:学会FIND 认识FIND 子键筛选 复杂查询 查询...

    loopback-connector-mongodb

    这是用于 LoopBack 的 MongoDB 连接器的修改版本。 与原始版本的变化: 将 LoopBack 的 GeoPoint 映射到 MongoDB 的 GeoJSON:此更改基于模型可以包含作为 GeoPoints 的位置,而它们将作为 GeoJSON 对象存储在 ...

    Django与MongoDB数据库的连接器-python

    djongo 唯一让您在不更改 Django ORM 的情况下将 Django 与 MongoDB 一起使用的连接器将 MongoDB 用作 Django 项目的后端数据库,而无需更改 Django ORM。 使用 Django 管理 GUI 在 MongoDB 中添加和修改文档。 ...

    Mybatis拦截器记录数据更新历史记录到MongoDB

    Mybatis拦截器记录数据更新历史记录到MongoDB的源码,另外需要配置拦截器到mybatis配置文件中。

    JYBlog一个用nodejs和mongodb写的博客系统

    这个博客系统是用 nodejs 和 mongodb 写的,主要思路是来自于alsotang的博客教程,修改了部分内容,增加了富文本编辑器,以及图片表情上传

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    3.3.2 使用修改器 3.3.3 upsert和save更新 3.3.4 修改多个文档 3.3.5 修改文档并返回修改后的文档 3.4 数据库响应 3.4.1 安全操作 3.4.2 捕获异常 3.5 客户端请求和MongoDB数据库连接 3.6 本...

    simplymongo:一个非常简单的MongoDB包装器,可在几秒钟内为您提供数据库基础知识

    简而言之,Mongo是使用MongoDB的最简单方法,而无需知道如何使用MongoDB。 将客户数据存储在集合中,并轻松获取和修改数据。 最初是为社区创建的。 安装先决条件NodeJS 13+ 带模块的ES6项目安装$ npm install ...

    robo3t-1.2.1-windows

    一款MongoDB的辅助插件,可以帮助您在管理数据库内容以及数据库代码编辑方面提供一定的开发优化方案,内置一个代码编辑区域,您可以将数据库文件放到软件上修改,结合图形化的处理方式,可以将MongoDB数据库中的文件...

    Django和MongoDB数据库连接器-Python开发

    使用Django Admin GUI djongo唯一的连接器,可让您在不更改Django ORM的情况下将Django与MongoDB一起使用将MongoDB用作Django项目的后端数据库,而无需更改Django ORM。 使用Django Admin GUI在MongoDB中添加和修改...

    基于vue+Springboot+MongoDB构建的的一个排课系统,课程设计报告,毕业设计

    网页开发的路由管理器 目录 排课系统设计报告 目录 文档修改历史 设计背景 技术栈 主要 前端 后端 技术栈介绍 vue vue-router element-ui axios Springboot MongoDB 使用这套技术栈的原因 开发工具 开发流程 模块...

    mongodb-upsert-test:Mongodb 3.0.4 upsert测试

    计时器偶尔会将状态字段从“活动”更改为其他状态。 该程序在具有MMAPv1引擎的mongodb 3.0.4上成功运行,但通过wiredtiger引发E11000错误。 安装并运行: 安装: git clone ...

Global site tag (gtag.js) - Google Analytics