假设我有这样的文件:
{
"name" : "Wendy",
"phone" : "123",
"GroupId" : 1
},
{
"name" : "Tom",
"phone" : "234",
"GroupId" : 1
},
{
"name" : "Sally",
"phone" : "345",
"GroupId" : 3
},
{
"name" : "Bob",
"phone" : "456",
"GroupId" : 3
},
{
"name" : "Cortana",
"phone" : "567",
"GroupId" : 7
}
我想返回一个完整数据文档的列表,其中包含每个不同的 GroupId
. 我认为聚合是完成此类任务的最佳途径。到目前为止,我掌握的情况如下:
MatchOperation matchStage = Aggregation.match(new Criteria());
GroupOperation groupStage = Aggregation.group("GroupId").first("$$CURRENT").as("??");
// I know the above line is semi-nonsensical
Aggregation aggregation = Aggregation.newAggregation(matchStage, groupStage);
// I only need help creating the aggregation object, beyond this is just a MongoOperations aggregate call
需要注意的是,我不一定需要使用聚合,所以如果有一种方法可以使用简单的“find”来实现这一点,那么我可以接受。我是mongodb noob,抱歉,如果我的“have trued”部分不是很有用。然而,这正是我想要的:
{
"name" : "Wendy",
"phone" : "123",
"GroupId" : 1
},
{
"name" : "Sally",
"phone" : "345",
"GroupId" : 3
},
{
"name" : "Cortana",
"phone" : "567",
"GroupId" : 7
}
1条答案
按热度按时间mdfafbf11#
试试这个。
$first
有助于获取数据的第一次出现工作蒙哥Playground