炖乌鸡汤放什么配料| 失信名单有什么影响| 膝盖肿是什么原因| FAN英语什么意思| 眼睛飞蚊症用什么药能治好| 小分子肽能治什么病| 一什么湖水| 金色搭配什么颜色好看| 喝藿香正气水不能吃什么| 移花接木什么意思| 来苏水又叫什么名字| 什么是脑死亡| 红豆和什么搭配最好| 什么饺子馅好吃| 夏威夷果吃了有什么好处| 海水倒灌是什么意思| 为什么不建议做冠脉cta检查| 月季什么时候开花| 结婚前要准备什么| 血糖高吃什么主食好| 毡房是什么意思| 虎头什么尾| 山地自行车什么牌子好| 吃饭吧唧嘴有什么说法| 靶点是什么意思| 母字是什么结构| 忽然流鼻血是什么原因引起的| 狂蜂浪蝶是什么意思| 吃洋葱对身体有什么好处| 心眼是什么意思| 多囊卵巢有什么症状表现| 头伏吃什么| 积什么成什么| 什么是客单价| 一声什么| 钻牛角尖是什么意思| 绿茶什么意思| 尿急尿痛吃什么药| 脑供血不足是什么症状| 切除甲状腺有什么影响| 梦见被狗追是什么意思| 爽约是什么意思| k是什么单位| 欲是什么意思| 肝损害是什么意思| 什么的柏树| 胆囊壁毛糙吃什么药效果好| 梦见做棺材是什么意思| 片仔癀为什么这么贵| 贫血吃什么药效果好| 一五行属性是什么| 后背疼是什么病的前兆| 舟状腹见于什么疾病| 为什么硬不起来| 心脏是什么形状| 尿多是什么原因| 什么条什么理| 疱疹吃什么药好| 发烧反反复复是什么原因| 单身公寓是什么意思| 送命题是什么意思| 小腹胀是什么原因| XXJ什么意思| 重庆东站什么时候通车| 晚上睡觉多梦是什么原因| 黑苦荞茶适合什么人喝| 眉毛上长痘是什么原因| 疤痕体质是什么原因| hyundai是什么牌子| 癌前病变是什么意思| 心境情感障碍是什么病| 甲状腺饱满是什么意思| 阻生齿是什么| 看肝挂什么科| 周杰伦为什么喜欢昆凌| 小龙虾吃什么| 厚颜无耻是什么生肖| 高抬贵手是什么意思| 孟德是什么意思| 巴宝莉属于什么档次| 斩衰是什么意思| 二战时期是什么时候| 副词是什么| 什么生金| 眼睛充血用什么眼药水| 多面手是什么意思| 属猴是什么命| 刑妻克子是什么意思| 电饭锅内胆是什么材质| 邀请的意思是什么| 新生儿用什么奶粉好| 蜘蛛怕什么| 心跳过速是什么原因| 照见五蕴皆空什么意思| 宫颈炎吃什么药最好| 柿子不能跟什么一起吃| 对什么什么感兴趣| 与虎谋皮是什么生肖| 今年是农历的什么年| 孕妇吃西红柿对胎儿有什么好处| hmo是什么意思| 壬水代表什么| 验血能查出什么病| 被交警开罚单不交有什么后果| 皮炎用什么药膏最有效| crp是什么意思| 肺大泡是什么意思| 樱桃跟车厘子有什么区别| 女人抖腿代表什么意思| 开导是什么意思| 汽车点火线圈坏了有什么症状| 拉肚子是什么原因造成的| nox是什么意思| 舌头生疮是什么原因引起的| 奇花初胎矞矞皇皇是什么意思| 每个月月经都推迟是什么原因| 什么水果含铁| rhubarb是什么意思| rsp是什么意思| neg是什么意思| anca医学上是什么意思| 乙肝抗体是什么意思| 五十年婚姻是什么婚| 哺乳期可以喝什么饮料| 颈椎病吃什么药效果好| 鱼最喜欢吃什么| 什么情况会染上鼠疫| 晒后修复用什么比较好| 一饿就胃疼是什么原因| 外婆的妈妈叫什么| 什么原因引起耳石症| 肌无力是什么病| 手上螺纹多少代表什么| whatsapp是什么| 深海鱼油有什么功效| 借口是什么意思| 红斑狼疮是什么| 检查尿酸挂什么科| 低钾有什么症状和危害| 夜明珠是什么东西| 2001年什么年| 880什么意思| 彷徨是什么意思| 睡觉多梦吃什么药| 岁岁年年是什么意思| 猫头鹰属于什么科| 过敏应该挂什么科| pisen是什么牌子| 守护者是什么意思| 贴秋膘是什么意思啊| 吐鲁番为什么那么热| 鼻烟为什么没人吸了| 喜五行属什么| 归脾丸和健脾丸有什么区别| 蓝莓有什么好处| 氨气对人体有什么危害| 什么动物有四个胃| 呃是什么意思| 乐山大佛是什么佛| 中央处理器由什么组成| 延长收货是什么意思| 肌肉损伤吃什么药| 15年什么婚| 一国两制是什么时候提出的| 迂回是什么意思| 腱鞘炎是什么原因引起的| 食物不耐受是什么意思| 夏天爱出汗是什么原因| 身上泡疹是什么引起的| 肝内高回声什么意思| 血压低压高吃什么药| 颈部有肿块看什么科室| 口爆什么意思| 九点是什么时辰| 导火索是什么意思| 子宫外怀孕有什么症状| gp是什么| ac是什么元素| 肝风是什么意思| 谈婚论嫁什么意思| apc是什么药| 仓鼠可以吃什么| scarves是什么意思| 韩语阿西吧是什么意思| 撬墙角是什么意思| 减脂晚餐吃什么| tvb什么意思| 天蝎座和什么星座不合| 芦荟有什么好处| 江西庐山产什么茶| 680分能上什么大学| 九一八事变是什么意思| 梦见家里着火了是什么征兆| 为什么肠道总是咕咕的响| 肺炎是什么| 痿证是什么病| 多宝鱼是什么鱼| 什么是低钾血症| 盛夏是什么时候| 诺贝尔奖为什么没有数学奖| 流年什么意思| mA是什么| 不作为什么意思| 早上适合做什么运动| 初秋的天冰冷的夜是什么歌| 煤气罐在什么情况下会爆炸| 走路腿软没劲是什么原因引起的| 昌字五行属什么| 上海属于什么方向| 打鸟是什么意思| 孕妇吃什么利尿排羊水| 泞字五行属什么| 参苓白术散治什么病| 炸鸡用什么油| 正常白带是什么样的| 今天是什么生肖日| 什么是破伤风| 什么是全日制本科| 因公殉职是什么意思| pap什么意思| 起酥油是什么| 什么晚霜比较好用| 补气血吃什么最好最快| 迪桑特属于什么档次的| mild是什么意思| 男性性功能障碍吃什么药| 腋下异味挂什么科| latex是什么| 多吃青菜有什么好处| 烤油边是什么| 身体虚弱打什么营养针| bravo是什么意思| 排骨炖什么最好吃| 公积金取出来有什么影响| 做梦来月经了什么预兆| 四季豆不能和什么一起吃| 石榴木是什么生肖| 后背中心疼是什么原因| 2月15日什么星座| 子宫内膜是什么| touch是什么意思| 冰冻三尺非一日之寒是什么意思| 淋巴结肿大是什么样子的| 腹腔淋巴结是什么意思| 梦见别人给钱是什么意思| 经常打哈欠是什么原因| 手心发热是什么原因引起的| 准确值是什么意思| 属牛幸运色是什么颜色| 双子座和什么星座最配| 女红是什么意思| 总流鼻血是什么原因| igm抗体阳性是什么意思| ace是什么| 巴基斯坦用什么语言| 男性婚检都检查什么项目| 什么是讨好型人格| 手指甲变薄是什么原因| 什么食物养胃| 卡马西平片是什么药| 儿童包皮挂什么科| 一步两步三步四步望着天是什么歌| vape是什么意思| 外阴瘙痒涂什么药膏| 百度
Docs 菜单
Docs 主页
/
数据库手册
/ /

我区出台坚持和完善计划生育目标管理责任制的

注意

消歧

本页讨论按需物化视图。有关标准视图的讨论,请参阅视图

要了解视图类型之间的差异,请参阅与标准视图的对比

按需物化视图是预先计算的聚合管道结果,它存储在磁盘上并从磁盘读取。按需物化视图通常是 $out 阶段的结果。

MongoDB 提供两种不同的视图类型:标准视图按需物化视图。这两种视图类型都可以返回聚合管道的结果。

  • 标准视图在您读取视图时计算得出,并且不会在磁盘中存储。

  • 按需物化视图存储在磁盘上并从磁盘读取。它们使用$merge$out阶段更新保存的数据。

    注意

    使用$merge时,可以使用变更流来监视物化视图的更改。 使用$out时,您无法监视物化视图上的更改。

标准视图使用底层集合的索引。因此,您无法直接在标准视图上创建、删除或重新构建索引,也无法获取视图上的索引列表。

您可以直接在按需物化视图上创建索引,因为它们存储在磁盘中。

按需物化视图的读取性能要优于标准视图,因为前者是从磁盘中读取,而不是作为查询的一部分通过计算得出。聚合管道越复杂,要聚合的数据量越大,这种性能优势就越明显。

本节中的示例使用示例训练数据集。要了解如何将示例数据集加载到您的 MongoDB Atlas 部署中,请参阅加载示例数据。

要在 MongoDB Atlas 用户界面中创建物化视图,请执行以下步骤:

1

警告

导航改进正在进行中

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 如果尚未出现,请单击侧边栏中的 Clusters(集群)。

    会显示集群页面。

2
  1. 对于包含样本数据的集群,单击Browse Collections

  2. 在左侧导航窗格中,选择 sample_training 数据库。

  3. 选择 grades 集合。

3
4
5

聚合阶段转换要另存为视图的数据。要了解有关可用聚合阶段的更多信息,请参阅聚合阶段

对于此示例,使用 $set 阶段添加一个新字段:

  1. Select 下拉菜单中选择 $set

  2. 将以下语法添加到聚合管道编辑器,以针对 grades 集合内 scores 数组中的所有 score 值创建平均分数:

    {
    averageScore: { $avg: "$scores.score" }
    }

    MongoDB Atlas 将 averageScore 值添加到每个文档。

6
7
  1. Select 下拉菜单中选择 $out 阶段。

  2. 在聚合管道中添加以下事务语法,以将管道结果写入 sample_training 数据库中的 myView 集合:

    'myView'
  3. 单击 Save Documents(连接)。

$out 阶段将 aggregation pipeline 的结果写入指定集合,由该集合创建视图。要了解更多信息,请参阅 $out

刷新集合列表以查看 myView 集合。

要了解如何在 MongoDB Atlas 用户界面中查询 myView 集合,请参阅 MongoDB Atlas 文档中的查看、过滤和排序文档

假定临近 2019 年 1 月底,集合 bakesales 包含按商品分类的以下销售信息:

db.bakesales.insertMany( [
{ date: ISODate("2025-08-06"), item: "Cake - Chocolate", quantity: 2, amount: Decimal128("60") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 5, amount: Decimal128("90") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 10, amount: Decimal128("200") },
{ date: ISODate("2025-08-06"), item: "Cookies - Chocolate Chip", quantity: 20, amount: Decimal128("80") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 1, amount: Decimal128("16") },
{ date: ISODate("2025-08-06"), item: "Pie - Key Lime", quantity: 3, amount: Decimal128("60") },
{ date: ISODate("2025-08-06"), item: "Cake - Chocolate", quantity: 2, amount: Decimal128("60") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 1, amount: Decimal128("16") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") },
{ date: ISODate("2025-08-06"), item: "Cookies - Chocolate Chip", quantity: 12, amount: Decimal128("48") },
{ date: ISODate("2025-08-06"), item: "Cake - Carrot", quantity: 2, amount: Decimal128("36") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") },
{ date: ISODate("2025-08-06"), item: "Pie - Chocolate Cream", quantity: 1, amount: Decimal128("20") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 5, amount: Decimal128("80") },
{ date: ISODate("2025-08-06"), item: "Tarts - Apple", quantity: 3, amount: Decimal128("12") },
{ date: ISODate("2025-08-06"), item: "Cookies - Chocolate Chip", quantity: 12, amount: Decimal128("48") },
{ date: ISODate("2025-08-06"), item: "Cake - Carrot", quantity: 5, amount: Decimal128("36") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") },
{ date: ISODate("2025-08-06"), item: "Cookies - Chocolate Chip", quantity: 20, amount: Decimal128("80") },
{ date: ISODate("2025-08-06"), item: "Pie - Key Lime", quantity: 3, amount: Decimal128("60") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") },
] );

以下 updateMonthlySales 函数定义一个 monthlybakesales 物化视图,其中包含累计每月销售信息。在该示例中,该函数采用日期参数来仅更新从特定日期开始的每月销售信息。

updateMonthlySales = function(startDate) {
db.bakesales.aggregate( [
{ $match: { date: { $gte: startDate } } },
{ $group: { _id: { $dateToString: { format: "%Y-%m", date: "$date" } }, sales_quantity: { $sum: "$quantity"}, sales_amount: { $sum: "$amount" } } },
{ $merge: { into: "monthlybakesales", whenMatched: "replace" } }
] );
};
  • $match 阶段对数据进行筛选,以便仅处理日期晚于或等于 startDate 的销售额。

  • $group 阶段按年月对销售信息进行分组。此阶段输出的文档具有以下形式:

    { "_id" : "<YYYY-mm>", "sales_quantity" : <num>, "sales_amount" : <NumberDecimal> }
  • $merge 阶段会将输出写入 monthlybakesales 集合。

    _id 字段(未分片输出集合的默认值),该阶段检查聚合结果中的文档是否与集合中的现有文档匹配

对于初始运行,您可以传入值为 new ISODate("2025-08-06") 的日期:

updateMonthlySales(new ISODate("2025-08-06"));

初次运行后,monthlybakesales 包含以下文档;即 db.monthlybakesales.find().sort( { _id: 1 } ) 返回以下文档:

{ "_id" : "2018-12", "sales_quantity" : 41, "sales_amount" : Decimal128("506") }
{ "_id" : "2019-01", "sales_quantity" : 86, "sales_amount" : Decimal128("896") }

假设到 2019 年 2 月的第一周,bakesales 集合用更新的销售信息进行更新,具体来说就是增加一月和二月的销售额。

db.bakesales.insertMany( [
{ date: ISODate("2025-08-06"), item: "Cake - Chocolate", quantity: 3, amount: Decimal128("90") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 2, amount: Decimal128("32") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 1, amount: Decimal128("20") },
{ date: ISODate("2025-08-06"), item: "Cookies - Chocolate Chip", quantity: 6, amount: Decimal128("24") },
{ date: ISODate("2025-08-06"), item: "Pie - Key Lime", quantity: 2, amount: Decimal128("40") },
{ date: ISODate("2025-08-06"), item: "Pie - Banana Cream", quantity: 2, amount: Decimal128("40") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") },
{ date: ISODate("2025-08-06"), item: "Tarts - Apple", quantity: 2, amount: Decimal128("8") },
{ date: ISODate("2025-08-06"), item: "Cake - Chocolate", quantity: 2, amount: Decimal128("60") },
{ date: ISODate("2025-08-06"), item: "Cake - Peanut Butter", quantity: 1, amount: Decimal128("16") },
{ date: ISODate("2025-08-06"), item: "Cake - Red Velvet", quantity: 5, amount: Decimal128("100") }
] )

要刷新 1 月和 2 月的 monthlybakesales 数据,请再次运行该函数以重新运行聚合管道,并从 new ISODate("2025-08-06") 开始。

updateMonthlySales(new ISODate("2025-08-06"));

monthlybakesales 的内容已更新,以反映 bakesales 集合中的最新数据,即 db.monthlybakesales.find().sort( { _id: 1 } ) 返回以下内容:

{ "_id" : "2018-12", "sales_quantity" : 41, "sales_amount" : Decimal128("506") }
{ "_id" : "2019-01", "sales_quantity" : 102, "sales_amount" : Decimal128("1142") }
{ "_id" : "2019-02", "sales_quantity" : 15, "sales_amount" : Decimal128("284") }

$merge 阶段:

  • 可以输出到相同或不同数据库中的集合。

  • 如果输出集合不存在,则创建一个新集合。

  • 可将结果(插入新文档、合并文档、替换文档、保留现有文档、操作失败、使用自定义更新管道处理文档)并入现有集合。

  • 可输出到分片集合。输入集合也可以是分片的。

请参阅 $merge 以了解:

后退

支持的操作

在此页面上

血栓是什么病 ncu病房是什么意思 红红的眼睛是什么生肖 奶昔是什么 渡劫什么意思
bees是什么意思 12月24号是什么星座 有福气是什么意思 刚感染艾滋病什么症状 no医学上是什么意思
儿童吃什么 hpv是什么意思啊 腹部超声检查什么 脚趾甲变黑是什么原因 白羊座的幸运色是什么
米五行属什么 骨膜炎吃什么药 什么中药补气血效果最好 智齿发炎吃什么药 尿比重是什么意思
为什么会得多囊卵巢hcv9jop2ns2r.cn 胳膊疼挂什么科hanqikai.com 乌豆和黑豆有什么区别luyiluode.com 乳房胀痛什么原因hcv8jop4ns1r.cn pm是什么的缩写bjhyzcsm.com
煞是什么意思hcv9jop3ns5r.cn 舜字五行属什么1949doufunao.com 秋老虎是什么意思hcv8jop4ns1r.cn 眼压高是什么意思hcv8jop4ns4r.cn 汗水里面有什么成分hcv8jop4ns7r.cn
看破红尘什么意思hcv7jop9ns6r.cn 阿魏酸是什么hcv9jop5ns5r.cn 入殓师是做什么的hcv9jop1ns7r.cn 介词后面跟什么hcv9jop0ns6r.cn 九寨沟在什么地方hcv9jop4ns2r.cn
喝完酒早上吃什么好luyiluode.com 菲律宾货币叫什么hcv8jop4ns3r.cn 豆柏是什么hcv8jop1ns2r.cn 平行宇宙是什么意思hcv9jop6ns2r.cn 病案首页是什么hcv9jop7ns3r.cn
百度