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版)
40
3
db.blog.updateOne(
{"post" : post_id },
{ $set: { "comments.$[elem].hidden" : true } },
{
arrayFilters: [ { "elem.votes": { $lte: -5 } }]
}
)
这个语句将
elem
定义为了
"comments"
数组中每个匹配元素的标识符。如果
elem
所标识的
评论的
votes
值小于或等于
-5
,那么就在
"comments"
文档中添加一个名为
"hidden"
的字
段,并将其值设置为
true
3.3.3
 
upsert
upsert
是一种特殊类型的更新。如果找不到与筛选条件相匹配的文档,则会以这个条件和
更新文档为基础来创建一个新文档;如果找到了匹配的文档,则进行正常的更新。
upsert
用起来
非常方便,有了它便不再需要“预置”集合:通常可以使用同一套代码创建和更新
文档。
下面再回到那个记录每个网页访问次数的例子。如果没有
upsert
,那么我们可能会尝试查
URL
并增加访问次数
,或者在
URL
不存在的情况下创建一个新文档。如果把它写成一
JavaScript
程序,它可能看起来像下面这样:
// 检查这个页面是否有一个文档
blog = db.analytics.findOne({url : "/blog"})
// 如果有,就将访问次数加1并进行保存
if (blog) {
blog.pageviews++;
db.analytics.save(blog); ...
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