当前位置: 首页 > news >正文

汕头网站建设设计公司展览展示设计公司排名

汕头网站建设设计公司,展览展示设计公司排名,网站子站怎么做、,网络营销是一种什么营销聚合$set阶段可以为文档添加新的字段。$set输出的文档包含输入文档中的所有现有字段和新添加的字段。$set是$addFields的别名,从MongoDB4.2开始支持。$set和$addFields等价于$project阶段,这两个阶段都等同于 $project 阶段,后者明确指定输入…

聚合$set阶段可以为文档添加新的字段。$set输出的文档包含输入文档中的所有现有字段和新添加的字段。$set$addFields的别名,从MongoDB4.2开始支持。$set$addFields等价于$project阶段,这两个阶段都等同于 $project 阶段,后者明确指定输入文档中的所有现有字段并添加新字段。

语法

{ $set: { <newField>: <expression>, ... } }

指定要添加的每个字段的名称,并将其值设置为聚合表达式或空对象。

如果新字段的名称与现有字段的名称(包括 _id)相同,$set将用指定表达式的值覆盖该字段的现有值。

使用

  • 将新字段追加到现有文档中。可以在聚合操作中包含一个或多个$set阶段。
  • 接受对象嵌入,您可以将值设置为聚合表达式或空对象。例如,可接受嵌套对象:{$set:{ a:{ b: { }}}}
  • 要在嵌入文档(包括数组中的文档)中添加一个或多个字段,可以使用点符号。

例子

使用两个$set阶段

创建一个scores集合,并添加文档:

db.scores.insertMany([{ _id: 1, student: "Maya", homework: [ 10, 5, 10 ], quiz: [ 10, 8 ], extraCredit: 0 },{ _id: 2, student: "Ryan", homework: [ 5, 6, 5 ], quiz: [ 8, 8 ], extraCredit: 8 }
])

以下操作使用了两个$set阶段,在输出文档中加入三个新字段:

db.scores.aggregate( [{$set: {totalHomework: { $sum: "$homework" },totalQuiz: { $sum: "$quiz" }}},{$set: {totalScore: { $add: [ "$totalHomework", "$totalQuiz", "$extraCredit" ] } }}
] )

操作返回下面的文档:

{"_id" : 1,"student" : "Maya","homework" : [ 10, 5, 10 ],"quiz" : [ 10, 8 ],"extraCredit" : 0,"totalHomework" : 25,"totalQuiz" : 18,"totalScore" : 43
}
{"_id" : 2,"student" : "Ryan","homework" : [ 5, 6, 5 ],"quiz" : [ 8, 8 ],"extraCredit" : 8,"totalHomework" : 16,"totalQuiz" : 16,"totalScore" : 40
}

为内嵌文档增加字段

使用点符号为嵌入式文档添加新字段。

创建vehicles集合并添加如下内容:

db.vehicles.insertMany([{ _id: 1, type: "car", specs: { doors: 4, wheels: 4 } },{ _id: 2, type: "motorcycle", specs: { doors: 0, wheels: 2 } },{ _id: 3, type: "jet ski" }
])

下面的聚合操作在嵌入文档specs中添加一个新字段 fuel_type

db.vehicles.aggregate( [{ $set: { "specs.fuel_type": "unleaded" } }
] )

操作返回以下结果:

{ _id: 1, type: "car", specs: { doors: 4, wheels: 4, fuel_type: "unleaded" } }
{ _id: 2, type: "motorcycle", specs: { doors: 0, wheels: 2, fuel_type: "unleaded" } }
{ _id: 3, type: "jet ski", specs: { fuel_type: "unleaded" } }

覆盖已有字段

$set操作中指定一个已存在的字段,原有字段会被替换。创建一个animals集合:

db.animals.insertOne( { _id: 1, dogs: 10, cats: 15 } )

下面的$set聚合操作覆盖了cats字段:

db.animals.aggregate( [{ $set: { "cats": 20 } }
] )

操作返回以下文件:

{ _id: 1, dogs: 10, cats: 20 }

可以用一个字段替换另一个字段。在下面的示例中,item字段替代了_id字段。创建一个名为fruits的样本集合,其中包含以下文档:

db.fruits.insertMany([{ "_id" : 1, "item" : "tangerine", "type" : "citrus" },{ "_id" : 2, "item" : "lemon", "type" : "citrus" },{ "_id" : 3, "item" : "grapefruit", "type" : "citrus" }
])

下面的聚合操作使用$set将每个文档的_id字段替换为item字段的值,并将item字段替换为字符串"fruit"。

db.fruits.aggregate( [{ $set: { _id : "$item", item: "fruit" } }
] )

该操作的返回值如下:

{ "_id" : "tangerine", "item" : "fruit", "type" : "citrus" }
{ "_id" : "lemon", "item" : "fruit", "type" : "citrus" }
{ "_id" : "grapefruit", "item" : "fruit", "type" : "citrus" }

向数组中添加元素

创建scores集合,内容如下:

db.scores.insertMany([{ _id: 1, student: "Maya", homework: [ 10, 5, 10 ], quiz: [ 10, 8 ], extraCredit: 0 },{ _id: 2, student: "Ryan", homework: [ 5, 6, 5 ], quiz: [ 8, 8 ], extraCredit: 8 }
])

可以使用$set$concatArrays表达式配合使用,可向现有数组字段添加元素。例如,以下操作使用$sethomework字段替换为一个新数组,新数组的元素是homework数组与数组[7]元素合并后的结果。

db.scores.aggregate([{ $match: { _id: 1 } },{ $set: { homework: { $concatArrays: [ "$homework", [ 7 ] ] } } }
])

该操作的返回值如下:

{ "_id" : 1, "student" : "Maya", "homework" : [ 10, 5, 10, 7 ], "quiz" : [ 10, 8 ], "extraCredit" : 0 }

用现有字段重设新字段

创建scores集合,内容如下:

db.scores.insertMany([{ _id: 1, student: "Maya", homework: [ 10, 5, 10 ], quiz: [ 10, 8 ], extraCredit: 0 },{ _id: 2, student: "Ryan", homework: [ 5, 6, 5 ], quiz: [ 8, 8 ], extraCredit: 8 }
])

下面的聚合操作为每个文档添加了一个新字段quizAverage,其中包含quiz数组的平均值。

db.scores.aggregate( [{$set: {quizAverage: { $avg: "$quiz" }}}
] )
db.scores.aggregate( [{$set: {quizAverage: { $avg: "$quiz" }}}
] )

该操作返回如下文档:

[{_id: 1,student: 'Maya',homework: [ 10, 5, 10 ],quiz: [ 10, 8 ],extraCredit: 0,quizAverage: 9},{_id: 2,student: 'Ryan',homework: [ 5, 6, 5 ],quiz: [ 8, 8 ],extraCredit: 8,quizAverage: 8}
]
http://www.yayakq.cn/news/959507/

相关文章:

  • 杭州大江东建设局网站php初学者网站
  • jsp企业网站开发前期报告德阳装修公司
  • 设计师工作室网站互助平台网站建设
  • 北海做网站有哪家好建设局是干嘛的单位
  • 建设网站技术方案免费建网站中文域名
  • wordpress 用户私信功能seo优化一般包括哪些内容()。
  • 教育网站建设备案自定义内容网站
  • api网站模板企业网站为什么打不开
  • 集团网站建设服务平台做网站详细教程
  • 国税网站模板免费网站电视剧全免费的app
  • 记事本网站开发广州 网站开发 公司
  • 企石做网站公司网站推广是做什么
  • 同个网站可以做多个外链吗做网站建设公司赚钱吗
  • 宁夏建设主管部门网站企业网站功能需求文档
  • 网站推广在哪好外贸网站域名费怎么查询
  • 小学学校网站设计模板上海迪士尼乐园官网
  • 网站运营策划提案网络营销推广方案有哪些
  • 满足seo需求的网站东莞市手机网站建设品牌
  • 国外网站模版免费下载传统网站有没有建设必要
  • 网站编辑转做新媒体运营网站换模板要怎么做
  • 科普网站栏目建设方案策划网站建设文章官网
  • html5炫酷的网站建设一个网站费用
  • 郑州网站建设知名公司百度一下你就知道官网首页
  • 安庆网站建设wordpress 过期时间
  • 大型网站开发协调网站百度知道
  • 网站开发流程中网站制作包括建筑模板多少钱一块
  • 公司建站后还要录入网页吗石家庄便宜网站制作
  • 优质的外国网站工信部查询网站备案
  • 长春企业自助建站优设网免费素材
  • 重庆市做网站的公司wordpress在哪里