MongoDB 4.2 使用另外一个字段更新字段的新方法

从MongoDB 4.2开始,db.collection.update()方法允许接受聚合管道(aggregation pipeline),最终就可以使用聚合管道实现“ 使用另外一个字段更新字段”的操作。

示例如下:

// { firstName: "Hello", lastName: "World" }
db.collection.update(
{},
[{ $set: { name: { $concat: [ "$firstName", " ", "$lastName" ] } } }],
{ multi: true }
)
// { "firstName" : "Hello", "lastName" : "World", "name" : "Hello World" }
  • 第一个参数{}是用来做查询条件,即符合条件的文档才允许更新
  • 第二参数[{ $set: { name: { ... } }],是一个更新的聚合管道,注意,管道里的值使用中括号[]括起来。
  • 第三个参数{ multi: true },表示更新多个文档,否在只会更新查询到的第一个文档。

注意:在聚合管道里,$set是新增的聚合操作符,是$addFields的别名。

版权声明:著作权归作者所有。

相关推荐

MongoDB重命名内嵌数组里对象的字段名

MongoDB的$rename操作符是不能对数组的对象进行重命名。如下:{ Field1: "", Field2: [ { NestedField1: "", NestedField2: "" }, { NestedField1: "", NestedField2: "" }, ... ]}如果直接使用$rename操作符对NestedField1重命名:db.testc

Nginx同一个域名配置多个项目

使用Nginx要在同一个域名下配置多个项目有两种方式:nginx按不同的目录分发给不同的项目启用二级域名,不同的项目分配不同的二级域名nginx按不同的目录分发给不同的项目在nginx的server节点配置server {     listen    80;     server_name example.c

使用Node.js实现一个简单的web服务器

这是使用Node.js写的一个简单Web服务器示例,分为三部分:响应http请求路由url读取静态文件响应新建一个app.js文件作为此web服务器的入口。响应http请求首先我们引入http模块,创建一个http服务器。const http = require('http'); const hostname = '127.0.0.1'