Skip to Content
MongoDB权威指南(第3版)
book

MongoDB权威指南(第3版)

by Shannon Bradshaw, Eoin Brazil, Kristina Chodorow
November 2021
Intermediate to advanced
410 pages
12h 1m
Chinese
Posts & Telecom Press
Content preview from MongoDB权威指南(第3版)
应用程序设计
185
最简单的方式是简单地根据应用程序的需要改进数据库模式,以确保应用程序支持所有的
旧版模式(例如,接受某些字段的缺失,或者优雅地处理某个字段的多个可能的类型)。
但是这种方式可能会导致混乱,特别是当不同版本的模式存在冲突时。例如,某个版本
需要一个
"mobile"
字段,另一个版本则不需要这个字段,而是需要另外一个不同的字段,
还有一个版本会将
"mobile"
视为可选字段。跟踪这些变化的需求可能会逐渐使代码变得
一团糟。
为了以一种更结构化的方式处理不断变化的需求,可以在每个文档中包含一个
"version"
字段(或者仅仅是
"v"
),并使用它来确定应用程序将接受的文档结构。这将对模式的要求
更加严格:文档必须对某个版本有效。不过,这仍然需要支持各种旧版本。
最后一种方式是在模式变更时迁移所有数据。通常来说这不是一个好主意:
MongoDB
许使用动态模式来避免迁移,因为这会给系统带来很大压力。不过,如果决定更改每一个
文档,则需要确保所有文档都被成功更新。
MongoDB
事务
可以支持这种类型的迁移。
如果
MongoDB
在事务处理过程中崩溃,那么旧的模式将被保留。
9.7
 模式管理
MongoDB 3.2
引入了模式验证,其可以在更新和插入操作期间对数据进行验证。
MongoDB 3.6
又通过
$jsonSchema
运算符添加了
JSON
模式验证,现在这是
MongoDB
中所有模式验证的
推荐方法。在撰写本书时,
MongoDB
支持
JSON
模式的第
4
版草案
,但还请参阅相关文
档以了解有关此特性的最新信息。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

大数据项目管理:从规划到实现

大数据项目管理:从规划到实现

Ted Malaska, Jonathan Seidman
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
Spark快速大数据分析(第2版)

Spark快速大数据分析(第2版)

Jules S. Damji, Brooke Wenig, Tathagata Das, Denny Lee
Kafka权威指南(第2版)

Kafka权威指南(第2版)

Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty

Publisher Resources

ISBN: 9787115576538