Mongodb聚合操纵中的$unset

打印 上一主题 下一主题

主题 666|帖子 666|积分 1998

学习mongodb,相识mongodb的每一个利用细节,欢迎阅读威赞的文章。这是威赞发布的第62篇mongodb技术文章,欢迎欣赏本专栏威赞发布的其他文章。
提到$unset, 起首想到的是update操纵中,利用$unset删除冗余字段。而在聚合操纵中的unset与UPDATE中的有什么不同, 通过本篇文档的形貌就可以搞清楚。
定义

在聚合操纵中,清除一些字段的返回。聚合操纵中的$unset并没有对数据产生影响,而只是在返回结果中将不需要的字段清除。
语法

聚合操纵中,在返回结果中清除单个字段
{$unset: "<field>"}
向$unset方法传入数组,在返回结果中清除多个字段
{$unset: ["<field1>", "<field2>", ...]}
$unset是投射操纵$project中清除字段的另外一种实现方法
{$project: {"<field1>":0, "<field2>":0, ...}}
在嵌套文档中,利用点操纵符定义需要清除的字段。
  1. {$unset: "<field.nestedfield>"}
  2. {$unset: ["<field.nestedfield>", ...]}
复制代码
应用

创建集合books并插入数据
  1. db.books.insertMany([
  2.     { "_id" : 1, title: "Antelope Antics", isbn: "0001122223334", author: { last:"An", first: "Auntie" }, copies: [ { warehouse: "A", qty: 5 }, { warehouse: "B", qty: 15 } ] },
  3.    { "_id" : 2, title: "Bees Babble", isbn: "999999999333", author: { last:"Bumble", first: "Bee" }, copies: [ { warehouse: "A", qty: 2 }, { warehouse: "B", qty: 5 } ] }
  4.     ])
复制代码
在聚合操纵中,清除一个字段
  1. db.books.aggregate([{$unset: "copies"}])
  2. db.books.aggregate([{$unset: ["copies"]}])
复制代码
清除多个字段
  1. db.books.aggregate([{$unset: ["copies", "isbn"]}])
复制代码
清除嵌套文档中的字段
  1. db.books.aggregate([{$unset: ["isbn", "author.first", "copies.warehouse"]}])
复制代码









免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表