mongodb 修改器学习
1. 执行update相关操作都可以使用修改器. 2. 修改器是为了不整个大文档来替换修改, 而是修改局部 3. 详情: 3.1 $inc (自增) 为增加某个字段的数值 例子: 原文档如下: { "_id" : ObjectId("4b253b067525f35f94b60a31"), "url" : "www.example.com", "pageview
1. 执行update相关操作都可以使用修改器.
2. 修改器是为了不整个大文档来替换修改, 而是修改局部
3. 详情:
3.1 $inc (自增)
为增加某个字段的数值
例子:
原文档如下:
{ "_id" : ObjectId("4b253b067525f35f94b60a31"), "url" : "www.example.com", "pageviews" : 52 }
执行修改器 $inc
db.test.update({url:’www.example.com’},{$inc:{pageviews: 1}})
表示为pageviews这个 key 的值 加上1. 后面是对应要加上的值.
注意, $inc中, 字段对应的值只能是 数字. 但是可以是 正数也可以是负数. 如果是负数, 就是执行一个减法操作.
3.2 $set (设置)
修改某个字段的值为指定的值. 这里的修改是与字段类型无关的. 你可以把一个string修改成long或者一个对象都行.
例子:
原文档如下:
{ "_id" : ObjectId("4b253b067525f35f94b60a31"), "name" : "joe", "age" : 30, "sex" : "male", "location" : "Wisconsin" }
修改性别, 变成false (String -> Boolean)
执行修改器 $set
db.test.update({name:'joe'}, {$set:{sex:false}})
表示将 name为joe的这个对象的 sex修改为false
3.3 $unset (删除字段)
这个修改器是为了删除某个指定的字段及其值.
例子:
原文档如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "howlong" : 6, "lovePerson" : "zhanying", "person" : "jiacheo" }
把howlong删除
执行修改器 $unset
db.test.update({person:'jiacheo'},{$unset:{howlong:1}})
后面的1没具体意义, 相当于确认
3.4 $push (把一个数据放到数组里面)
例子:
原文档如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "gongjin" ] }
执行修改器, 增加一个人到supporters里面
db.test.update({person:'jiacheo'},{$push:{supporters:'ziming'}})
这时候变成:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "gongjin", "ziming" ] }
若果再执行一遍上面的代码, 那么数组还是会加上同样的名称, 如果你需要排同, 可以用后面这个修改器
3.5 $addToSet (将一个对象放到集合里面. 集合里面不会出现两个重复的一模一样的对象)
例子:
原文档如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "gongjin", "ziming" ] }
执行修改器 $addToSet
db.test.update({person:'jiacheo'},{$addToSet:{supporters:'ziming'}})
文档内容没有改变..
以上两个修改器还可以配合 $each, 把一个数据里的数据append到另一个数组上去(后者会排重)
比如:
db.test.update({person:'jiacheo'}, {$addToSet:{supporters:{$each: ["gongjin","ziming","liuxun","feidu"] }}})
执行后, 结果如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : ["gongjin", "ziming", "feidu", "liuxun" ] }
3.6 $pop 队列出列 (按数组索引顺序出列(正序或者倒序))
例子:
原文档如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : ["gongjin", "ziming", "feidu", "liuxun" ] }
执行修改器 $pop
db.test.update({person:'jiacheo'},{$pop:{supporters:1}})
修改后变为
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "gongjin", "ziming", "feidu" ] }
value 值为1 表示数组索引靠后的先出列, 也就是后进先出, 相当于出栈的概念. value值为-1表示数组索引考前的先出列, 也就是先进先出, 相当于一个FIFO的队列
3.7 $pull (符合条件的元素出列)
与上一个相比, 这个修改器会把符合条件的元素从数组中删除, 而不是简单的按照索引值的大小来处理.
原文档如下:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "gongjin", "ziming", "feidu" ] }
执行修改器 $pull
db.test.update({person:'jiacheo'},{$pull:{supporters: 'gongjin'}})
修改后:
{ "_id" : ObjectId("4f9105377522000000006be0"), "lovePerson" : "zhanying", "person" : "jiacheo", "supporters" : [ "ziming", "feidu" ] }
可以见, gongjin从supporters中被remove掉了.
这里所有被匹配的元素都会被出列
原文地址:mongodb 修改器学习, 感谢原作者分享。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

推荐使用 MongoDB 最新版本(当前为 5.0),因为它提供了最新特性和改进。选择版本时,需考虑功能需求、兼容性、稳定性和社区支持,例如:最新版本具有事务、聚合管道优化等特性。确保版本与应用程序兼容。生产环境选择长期支持版本。最新版本有更活跃的社区支持。

Node.js 是一种服务器端 JavaScript 运行时,而 Vue.js 是一个客户端 JavaScript 框架,用于创建交互式用户界面。Node.js 用于服务器端开发,如后端服务 API 开发和数据处理,而 Vue.js 用于客户端开发,如单页面应用程序和响应式用户界面。

MongoDB 数据库的数据存储在指定的数据目录中,该目录可以位于本地文件系统、网络文件系统或云存储中,具体位置如下:本地文件系统:默认路径为 Linux/macOS:/data/db,Windows:C:\data\db。网络文件系统:路径取决于文件系统。云存储:路径由云存储提供商决定。

MongoDB 数据库以其灵活、可扩展和高性能而闻名。它的优势包括:文档数据模型,允许以灵活和非结构化的方式存储数据。水平可扩展性,可通过分片扩展到多个服务器。查询灵活性,支持复杂的查询和聚合操作。数据复制和容错,确保数据的冗余和高可用性。JSON 支持,便于与前端应用程序集成。高性能,即使处理大量数据也能实现快速响应。开源,可定制且免费使用。

MongoDB是一款面向文档的、分布式数据库系统,用于存储和管理大量结构化和非结构化数据。其核心概念包括文档存储和分布式,主要特性有动态模式、索引、聚集、映射-归约和复制。它广泛应用于内容管理系统、电子商务平台、社交媒体网站、物联网应用和移动应用开发等领域。

经过多次预发布后,KDE Plasma 开发团队于 2 月 28 日推出了适用于 Linux 和 BSD 系统的 6.0 版桌面环境,首次使用 Qt6 框架。 KDE Plasma 6.1 现在附带了许多新功能

MongoDB 数据库文件位于 MongoDB 数据目录中,默认情况下为 /data/db,其中包含 .bson(文档数据)、ns(集合信息)、journal(写入操作记录)、wiredTiger(使用 WiredTiger 存储引擎时的数据)和 config(数据库配置信息)等文件。

在 Linux/macOS 上:创建数据目录并启动 "mongod" 服务。在 Windows 上:创建数据目录并从服务管理器中启动 MongoDB 服务。在 Docker 中:运行 "docker run" 命令。在其他平台上:请查阅 MongoDB 文档。验证方式:运行 "mongo" 命令以连接并查看服务器版本。
