Mysql(或者sqlite), Mongo中update Column + 1

有类似以下需求,在数据库表里有一个字段,记录了一个count,然后又时候需要在count的基础上加上某个数字,比如1。看到这个需求后,由于是要操作mongo数据库,发现mongo update的时候$inc可以实现这个结果,但是没想起Mysql或者sqlite要怎么操作,总不能query拿到count后再update吧。在stackoverflow上找到了以下的解决方案,果然是简单方便。

update table set column = column + n

这是里相关网址
http://stackoverflow.com/questions/2762851/increment-a-database-field-by-1

http://stackoverflow.com/questions/3866524/mysql-update-column-1

sqlite> create table test2 (count integer, id text);
sqlite> insert into test2 values(10, 'aa');
sqlite> insert into test2 values(0, 'bb');
sqlite> select * from test2;
10|aa
0|bb
sqlite> update test2 set count = count + 1 where id = 'aa'
...> ;
sqlite> select * from test2;
11|aa
0|bb
sqlite> update test2 set count = count + 2 where id = 'aa';
sqlite> select * from test2;
13|aa
0|bb
sqlite>

对于mongo里的解决方案

{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }

大专栏  Mysql(或者sqlite), Mongo中update Column + 1官方文档如下
https://docs.mongodb.org/manual/reference/operator/update/inc/

在mongoose里可以使用findOneAndUpdate.

var update = {$inc:{rate:1}}; //重点
UserSing.model.findOneAndUpdate({'user': userId}, update, {new: true, upsert: true}, function(err, sing){
if(err) {
return next(new CommonError(ErrCode.invalid_parameter, '修改状态失败'));
console.error(condition + err);
}
console.error(sing);
res.send(sing);
});

http://stackoverflow.com/questions/8621948/doing-inc-with-mongoose

Related Posts

Mysql(或者sqlite), Mongo中update Column + 1的更多相关文章

  1. mysql中update的low_priority解决并发问题

    在处理访客信息更新是遇到了大并发的问题,low_priority,低优先级,可以让并发没那么占CPU,对于低配VPS来说,作用还是很大的.UPDATE [LOW_PRIORITY] tbl_name ...

  2. 将 flask 中的 session 存储到 SQLite 数据库中

    将 flask 中的 session 存储到 SQLite 数据库中 使用 flask 构建服务器后端时,常需要在浏览器端存储 cookie 用于识别不同用户,根据不同的 cookie 判断出当前请求 ...

  3. 兼容SQLSERVER、Oracle、MYSQL、SQLITE的超级DBHelper

    本示例代码的关键是利用.net库自带的DbProviderFactory来生产数据库操作对象. 从下图中,可以看到其的多个核心方法,这些方法将在我们的超级DBHelper中使用. 仔细研究,你会发现每 ...

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'dd' in 'where clause'

    今天在使用mysql数据库查找数据的时候报错,错误信息如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown co ...

  5. Mongo中更新总结

    mongo中的更新其实也可以当做添加来使用 mongo中跟新有几种方式 save.update.upsert 执行save的时候如果这个文档有_id这个参数,save 会调用 upsert,否则会调用 ...

  6. mysql:on duplicate key update与replace into

    在往表里面插入数据的时候,经常需要:a.先判断数据是否存在于库里面:b.不存在则插入:c.存在则更新 一.replace into 前提:数据库里面必须有主键或唯一索引,不然replace into ...

  7. 转: 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  8. SQL Server 2012 中 Update FROM子句

    首先说明一下需求以及环境 创建Table1以及Table2两张表,并插入一下数据 USE AdventureWorks2012; GO IF OBJECT_ID ('dbo.Table1', 'U') ...

  9. MySQL将表a中查询的数据插入到表b中

    MySQL将表a中查询的数据插入到表b中 假设表b存在 insert into b select * from a; 假设表b不存在 create table b as select * from a ...

随机推荐

  1. 阿里云zabbix的python脚本

    由于阿里云只能用465端口.所以这个zabbix的脚本修改成了465端口的python脚本. 修改于https://www.jianshu.com/p/9d6941dabb47 #!/usr/bin/ ...

  2. eclipse优化自动补全(解决空格、分号等上屏问题)

    第一步:打开"Window"——>"Show View"——>"Other"——>找到"Plug-in Deve ...

  3. 892B. Wrath#愤怒的连环杀人事件(cin/cout的加速)

    题目出处:http://codeforces.com/problemset/problem/892/B 题目大意:一队人同时举刀捅死前面一些人后还活着几个 #include<iostream&g ...

  4. linux中find,locate,whereis,which关系和用法

    主要有find,locate,whereis,which等 1. find是最常用也是最强大的查找命令,它可以查找任何类型的文件. find命令的一般格式为:find <指定目录>< ...

  5. MySQL表与表的关系

    表与表的关系 一对多关系 ID name gender dep_name dep_desc 1 Chen male 教学部 教书育人 2 Old flying skin male 外交部 漂泊游荡 3 ...

  6. 总结oracle18.3c-centos7-安装

    官网下载对应名字rpm包 oracle-database-ee-18c-1.0-1.x86_64.rpm下载依赖包 除非已有依赖 否则会报缺少依赖错误 1 curl -o oracle-databas ...

  7. UFT检查点

    一.标准检查点 选择需要插入检查点的语句,点击右键,选择Insert Standard Checkpoint.... 二.图像检查点(Insert Standard Checkpoint....) 在 ...

  8. cs231n spring 2017 lecture13 Generative Models

    1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...

  9. css - inline-block 盒子下的内容文字错位问题

    参考资料: “display:block-inline形式的Span或Div中添加文字后,导致Span或Div排版掉落.错位”的原因及解决方法: 正文: 场景:两个 div 排在一行上,各有固定宽高, ...

  10. 吴裕雄--天生自然python学习笔记:Python3 正则表达式

    Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参 ...