Mongodb聚合操作中的$unset

Mongodb聚合操作中的$unset

码农世界 2024-06-20 后端 91 次浏览 0个评论

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第62篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。

提到$unset, 首先想到的是update操作中,使用$unset删除冗余字段。而在聚合操作中的unset与UPDATE中的有什么不同, 通过本篇文档的描述就可以搞清楚。

定义

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

语法

聚合操作中,在返回结果中排除单个字段

{$unset: ""}

向$unset方法传入数组,在返回结果中排除多个字段

{$unset: ["", "", ...]}

$unset是投射操作$project中排除字段的另外一种实现方法

{$project: {"":0, "":0, ...}}

在嵌套文档中,使用点操作符定义需要排除的字段。

{$unset: ""} 
{$unset: ["", ...]} 

应用

创建集合books并插入数据

db.books.insertMany([
    { "_id" : 1, title: "Antelope Antics", isbn: "0001122223334", author: { last:"An", first: "Auntie" }, copies: [ { warehouse: "A", qty: 5 }, { warehouse: "B", qty: 15 } ] },
   { "_id" : 2, title: "Bees Babble", isbn: "999999999333", author: { last:"Bumble", first: "Bee" }, copies: [ { warehouse: "A", qty: 2 }, { warehouse: "B", qty: 5 } ] }
    ])

在聚合操作中,排除一个字段

db.books.aggregate([{$unset: "copies"}])
db.books.aggregate([{$unset: ["copies"]}])

排除多个字段

db.books.aggregate([{$unset: ["copies", "isbn"]}])

排除嵌套文档中的字段

db.books.aggregate([{$unset: ["isbn", "author.first", "copies.warehouse"]}])

转载请注明来自码农世界,本文标题:《Mongodb聚合操作中的$unset》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,91人围观)参与讨论

还没有评论,来说两句吧...

Top