我是新来的MongoDB,一个应用程序,我有模式分组,记录与MongoDB的
{
date: "date",
data:"encrypted data",
sender:"sender",
receiver:"receiver"
}
和我期待的记录组中的对象杵,与组由发送器/接收器名称这是不等于一个特定的值。前者为 。
{
date: "date",
data:"encrypted data",
sender:"xyz",
receiver:"abc"
},
{
date: "date",
data:"encrypted data",
sender:"abc",
receiver:"xyz"
},
{
date: "date",
data:"encrypted data",
sender:"pqr",
receiver:"abc"
},
{
date: "date",
data:"encrypted data",
sender:"abc",
receiver:"pqr"
},
{
date: "date",
data:"encrypted data",
sender:"pqr",
receiver:"xyz"
},
{
date: "date",
data:"encrypted data",
sender:"xyz",
receiver:"pqr"
}
当我使用find(abc)和某些组函数时,我需要以波纹管格式的数据。
{
xyz:[
{
date: "date",
data:"encrypted data",
sender:"xyz",
receiver:"abc"
},
{
date: "date",
data:"encrypted data",
sender:"abc",
receiver:"xyz"
}
],
pqr:[
{
date: "date",
data:"encrypted data",
sender:"pqr",
receiver:"abc"
},
{
date: "date",
data:"encrypted data",
sender:"abc",
receiver:"pqr"
}
]
}
如何使用$ group或mongodb的任何其他功能给出给定格式的结果?
获取除非你知道每一个单独的名字,并将它们全部放入你的$ project语句中,否则就不可能进行聚合。但是可以为每个用户获取一个对象的数组。然后,您可以将它转换为应用程序层上的键/值表。 – Philipp
@菲利普,在这个世界上没有什么是不可能的,如果这种方式无法实现,可以用另一种方式。我找到了解决这个问题的方法。 :) –