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. 四、NOSQL之Redis持久化缓存服务基础实战第三部

    1.NOSQL的理解 NOSQL是不仅仅是SQL,说的就是sql的补充,但是不能替代SQL. nosql库:memcached.memcachedb.redis 2.redis 简介 Redis是一个 ...

  2. 【ccf- csp201412-2】z字形扫描

    //ccf-Z字形扫描 #include<iostream> #include<cmath> using namespace std; #define N 500 int ma ...

  3. Springboot中RestTemplate -- 用更优雅的方式发HTTP请求

    RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率. 我之前的HTTP开发是用ap ...

  4. [ZJOI2019]浙江省选(半平面交)

    一眼看上去就应该能用半平面交去做. 首先考虑怎么求可能得第1名的人:每个人的函数为直线,就是在所有人的半平面交中的上边界者即可获得第一名,这个可以单调队列求解. 再考虑如何求可能得第2名的人:满足2个 ...

  5. 在select2插件中append下拉选,点击没反应的解决

    今天前端大佬帮我解决了一个棘手的问题:克隆了已有系统的网页,尝试把复制下来的html改造成jsp.基本功能正常,然而点击新增按钮,出来的行无法点击下拉选,控制台也没报错. 项目用的是jeesite2. ...

  6. MRP自动运算设置

    1.执行计划-删除老的调度计划: 2.运算日志-清除冲突: 3.MRP计划运算向导,清除预留: 4.创建MRP凌晨调度任务,名称自己修改: 5.创建完成: 6.设置消息通知:

  7. 00 - 准备 Anaconda 环境

    Anaconda 环境 官方下载安装包:https://www.anaconda.com/download/ Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管 ...

  8. VMware 安装 Centos7 后,没有ipv4的地址,或者地址显示127.0.0.1

    问题描述:VMware 安装 Centos7 后,没有ipv4的地址,或者地址显示127.0.0.1 安装环境:VMware版本:VMware-workstation-full-14.0.0.2405 ...

  9. mean|mode|median|sample的表达方式

    Measures of Center measures of central tendency:the center or most typical value:average Mean:its ar ...

  10. vue实现动态绑定class--多个按钮点击一个有一个

    <template> //v-for循环出来多个按钮,便于获取index         <span v-for="(item,index) in list" : ...