在 MongoDB 中,通过 update 更新记录时,其中的 inc 修改器用于将一个字段的值增加或者减少,类似于编程中的自增或者自减操作。
db_name.collection_name.update( <query>, {"$inc":{update}, { upsert, multi, writeConcern, collation } )
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
query | 必选项,是设置更新的文档的条件 |
update | 为更新操作符 |
upsert | 为布尔型可选项,表示如果不存在 update 的记录,是否插入这个新的文档。true 为插入;默认为 false,不插入 |
multi | 也是布尔型可选项,默认是 false,只更新找到的第一条记录。如果为 true,则把按条件查询出来的记录全部更新 |
writeConcem | 表示出错级别 |
collation | 指定语言 |
使用 update 更新记录时,是将后面的字段的值增加指定的值或者减少指定的值。
$inc 可以接收正的和负的值:
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们使用 insertMany 插入多条记录,具体命令如下:
db.haicoder.insertMany([{"name":"haicoder", "age":109, "date":110}, {"name":"cpp", "age":120, "date":130}, {"name":"golang", "age":200, "date":150}])
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 查询当前的所有记录,具体命令如下:
db.haicoder.find()
执行完毕后,此时,如下图所示:
现在,我们使用 update 修改 age 字段,具体命令如下:
db.haicoder.update({"_id" : ObjectId("5f63026d8117cc4a9961d0c0")}, {"$inc" :{age:10}})
执行完毕后,我们再次使用 find 查看记录,如下图所示:
我们看到,我们将 age 字段的值增加了 10,现在,我们再次使用 inc 修改符将 date 减少 10,具体命令如下:
db.haicoder.update({"_id" : ObjectId("5f63026d8117cc4a9961d0c1")}, {"$inc" :{date:-10}})
执行完毕后,我们再次使用 find 查看记录,如下图所示:
我们看到,我们将 date 字段减少了 10,同时,我们还可以同时修改两个字段的值,具体命令如下:
db.haicoder.update({"_id" : ObjectId("5f63026d8117cc4a9961d0c2")}, {"$inc" :{age:20, date:-20}})
执行完毕后,我们再次使用 find 查看记录,如下图所示:
我们看到,我们同时修改了 age 字段的值和 date 字段的值。
在 MongoDB 中,通过 update 更新记录时,其中的 inc 修改器用于将一个字段的值增加或者减少,类似于编程中的自增或者自减操作。