gpt4 book ai didi

mongodb是否有可能获取集合中文档中对象的所有键和值?

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

是否可以获取集合中文档中对象的所有键和值?

我在 mongo db 中有一个集合,其结构如下

[{
_id: '55534c2e2750b4394debedd2',
selected_options: {
name: 'test',
size: 'S',
color: 'red'
}
},
{
_id: '55534c2e2750b4394debedd3',
selected_options: {
name: 'test2',
size: 'S',
color: 'red'
}

},
{
_id: '55534e087f01fa2a4d30f7f5',
selected_options: {
name: 'test3',
size: 'm',
color: 'green'
}
}
........
]

我怎样才能得到这样的输出:

[{
name: 'name',
values: ['test', 'test2', 'test3']
},
{
name: 'size',
values: ['S', 'm']
},
{
name: 'color',
values: ['red', 'green']
}
]

最佳答案

我认为如果不在客户端进行处理,您就无法获得结果。不过你可以试试 Aggregation Framework只需一个查询即可实现与您想要的输出类似的结果。

db.yourCollection.aggregate([
{$group:
{
_id: null,
names: {$addToSet: '$selected_options.name'},
sizes: {$addToSet: '$selected_options.size'},
colors: {$addToSet: '$selected_options.color'},
}
},
{$project:
{_id: 0, names: 1, colors: 1, sizes: 1}
}
])

这将输出以下内容:

{
names: ['test', 'test2', 'test3'],
sizes: ['S', 'm'],
colors: ['red', 'green']
}

关于mongodb是否有可能获取集合中文档中对象的所有键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484526/

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