gpt4 book ai didi

Mongodb聚合,如何组合或合并字段然后计数

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

我在一个集合中有 property(home) 数据。每个家庭可以有多个所有者,并存储为单独的字段,例如 {home: 1, owner1: Fred, owner2: Jason, owner3: Stan} 我想获得前 X 个所有者姓名的列表。作为 mongodb 的新手,我能够改编一个基本示例来聚合和计算一个字段 (owner1),但我不知道如何组合 owner1、owner2、owner3 的名称然后进行计数。

我现在使用 pymongo 有什么

x = data2009.aggregate([
{ "$group": { "_id": "$OWNER1", "value": { "$sum": 1 } } },
{ "$sort": { "value": -1 } },
{ "$limit": 50 }
])

一个例子:数据

{_id:1, home: 1, OWNER1: "Fred", OWNER2: "Stan", OWNER2: ""}
{_id:2, home: 2, OWNER1: "Jason", OWNER2: "Fred", OWNER2: "Stan"}
{_id:3, home: 3, OWNER1: "Fred", OWNER2: "Tim", OWNER2: "Stan"}
{_id:4, home: 4, OWNER1: "Stan", OWNER2: "", OWNER2: ""}

输出将是

{
{_id: Stan, value: 4}
{_id: Fred, value: 3}
{_id: Jason, value: 1}
{_id: Tim, value: 1}
}

最佳答案

据我所知,使用聚合框架尚无法将多个字段 reshape 为一个数组值(可以将一个元素 reshape 为包含一个元素的数组,但没有用)。以下新功能解决了这个缺点,请为它投票 - “$array 聚合表达式” - https://jira.mongodb.org/browse/SERVER-8141

关于Mongodb聚合,如何组合或合并字段然后计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19684842/

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