mongo php 自增,PHP7下MongoDB自增或自减一个字段的值
需求场景:
`test` 表中的 `id` = 1 数据 `num` 字段 自增+1或者-1
MySQL下:
UPDATE `test` SET `num` = `num` + 1 WHERE `id` = 1
UPDATE `test` SET `num` = `num` - 1 WHERE `id` = 1
MongoDB下:
// 增
db.test.findAndModify(
{
query:{ "id" : 1 },
update: { $inc:{ "num":1 } },
"new":true
});
// 减
db.test.findAndModify(
{
query:{ "id" : 1 },
update: { $inc:{ "num": -1 } },
"new":true
});
这里介绍下MongoDB的findAndModify方法
findAndModify属于原子操作模型数据
所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。
MongoDB findAndModify方法的语法如下。
db.collection.findAndModify({
query: ,
sort: ,
new: ,
fields: ,
upsert:
})
参数说明如下:
query: Defines the selection criteria as to which record needs modification.
query :定义关于哪些记录需要修改的选择标准。
sort: Determines which document should be modified when the selection criteria retrieves multiple documents.
sort :确定选择标准检索多个文档时应修改的文档。
new: indicates that the modified document will be displayed.
new :表示将显示修改后的文档。
fields: specifies the set of fields to be returned.
fields :指定要返回的字段集。
upsert: creates a new document if the selection criteria fails to retrieve a document.
upsert :如果选择标准无法检索文档,则创建一个新文档。
PHP7语法如下:
$param = [
'findAndModify' => "test",
'query' => ["id" => 1],
'update' => ['$inc' => ["num" => 1]],
'new' => true,
];
$command = new \MongoDB\Driver\Command($param);
$result = (new \MongoDB\Driver\Manager("mongodb://localhost:27017", []))->executeCommand("test", $command);
$res = $result->toArray();
$value = (array)$res[0];
var_dump($value['value'] ?? NULL)
mongo php 自增,PHP7下MongoDB自增或自减一个字段的值相关推荐
- php插入一个自增字段,thinkphp-自增或自减一个字段的值
说明setInc/setDec 方法返回影响数据的条数 自增 默认加1 示例Db::table('think_user') ->where('id', 1) ->setInc('score ...
- mongodb如何实现更新一个字段的值为另外一个字段的值?
转载自 mongodb如何实现更新一个字段的值为另外一个字段的值? db.CargoUserProfiles.find().forEach(function(item){db.CargoUserP ...
- mongodb查询一个字段所有值
mongodb查询一个字段所有值 db.集合名.find( {}, {需要查询的字段:1, _id:0} ) 例如 db.movies.find({}, {'cover':1, _id: 0}) 1表 ...
- linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)
Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...
- MongoDB的增删改查操作
前面介绍了MongoDB的基本概念与常见的操作,本文来重点分析下MongoDB的增删改查操作 文章目录 什么是"mongo" 新增操作 删除操作 更新操作 查询操作 Where语句 ...
- Mongodb的集合插入一个字段
在mongodb的现有集合中增加一个字段: db.rules.update({"_id" : ObjectId("587e5e0e09a4670334208e88&quo ...
- MongoDB基本操作(增删改查)
2019独角兽企业重金招聘Python工程师标准>>> 基本操作 基本的"增删查改",在DOS环境下输入mongo命令打开shell,其实这个shell就是mon ...
- MongoDB的增删改查
1.启动 - 配置环境变量 MongoDB/3.4/bin 通过命令 mongod 来启动 MongoDB 默认端口 27017 redis:6379 Mysql:3306 可以指定数据库存放目录,但 ...
- Mongodb c#增删改查
写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录( ...
最新文章
- Nginx配置使用积累[不断更新]
- unix awk手册读书笔记
- 卷积神经网络(CNN)前向传播算法
- easyui 1.4.2 Tab刷新图标重复问题
- linux怎么用命令备份数据库,使用linux的mysqlhotcopy命令备份数据库
- MyBatis框架笔记02:接口方式使用MyBatis
- EXCEL统计不重复值的数量
- shell脚本中的日期处理
- 尚硅谷-Promise
- Neural Approaches to Conversational AI
- 软件测试工程师发展前景好吗?
- 区块链游戏常见的 10 种分类
- echarts嵌套饼图自动动画_使用百度echarts制作可视化大屏——制作一个双层饼图...
- Eclipse+tomcat开发j2ee经典入门例子
- 刚入门的自媒体人,也能给视频配上好听的声音
- 貓空纜車 現代與自然的旅遊結合
- jar hell问题以及解决方案
- 艾利特EC系列机器人使用入门
- Android免Root自动安装apk
- 山东自考计算机科学与技术,速看,山东自考本科计算机科学与技术专业介绍
热门文章
- 如何 sizing 一台物理机上可以承载多少 VMware 虚拟机? 分享 Vsphere HA 几个实用知识点
- 阿里云-设备影子概览
- Redis学习总结(23)——Redis如何实现故障自动恢复?浅析哨兵的工作原理
- Spring Boot学习总结(12)——Spring Boot Admin 2.0应用监控示例
- Docker学习总结(14)——从代码到上线, 云端Docker化持续交付实践
- Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
- Java基础学习总结(25)——Log4j快速入门教程
- docker mysql5.7.19_Docker19.03.13下安装Mysql57
- React 16.8.3 发布,构建用户界面的 JavaScript 库
- 使用wampserver部署的织梦站点无法登录后台