gpt4 book ai didi

mongodb - 聚合时如何不一一列出项目中的所有字段?

转载 作者:可可西里 更新时间:2023-11-01 09:24:01 24 4
gpt4 key购买 nike

我正在使用 Mongo 3.2.14

我有一个如下所示的 mongo 集合:

{
'_id':...
'field1':...
'field2':...
'field3':...
etc...
}

我想这样聚合:

db.collection.aggregate{
'$match':{},
'$project':{
'field1':1,
'field2':1,
'field3':1,
etc...(all fields)
}
}

有没有一种方法可以包含项目中的所有字段,而无需一一列出每个字段? (我有大约 30 个领域,并且还在不断增长……)

我在这里找到了相关信息:

MongoDB $project: Retain previous pipeline fields

Include all existing fields and add new fields to document

how to not write every field one by one in project

但是,我使用的是 mongo 3.2.14,我不需要创建新字段,所以我认为我不能使用 $addFields。但是,如果可以的话,有人可以告诉我如何使用它吗?

最佳答案

基本上,如果您希望将文档的所有属性传递到下一个管道,您可以跳过 $project 管道。但是如果你想要除“_id”值之外的所有属性,那么你可以通过

{ $project: { _id: 0 } }

这将返回除 _id 之外的所有值。

如果您有任何希望展平的嵌入式列表或嵌套,您可以使用 $unwind 管道

关于mongodb - 聚合时如何不一一列出项目中的所有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com