gpt4 book ai didi

spring - 如何使用 Spring Mongodb 聚合 api 转换此查询?

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

这是我要执行的查询:

db['applications'].aggregate(
{$project: {key:1, _id:0}}
,{$group: { _id:null, keyList: {$addToSet:"$key"}}} );

这是我正在使用的代码:

 Aggregation agg = newAggregation(
project("key"),
group("key").addToSet("key").as("keylist")
);

然而,产生的结果是这样的:

Executing aggregation: 
{ "aggregate" : "applications" , "
pipeline" : [
{ "$project" : { "key" : "$key"}} ,
{ "$group" : { "_id" : "$key" , "keylist" : { "$addToSet" : "$key"}}}
]}

为什么组中的 _id 键设置为“组”的参数。如何使其为空?
我如何让 Spring MongoData 生成我想要的查询?

最佳答案

不幸的是,对于小组阶段,您不能传递 null 查看 documentation .

public static GroupOperation group(String... fields)
Creates a new GroupOperation for the given fields.
Parameters:
fields - must not be null.
Returns:

但是,您可以通过为集合中不存在的组 ID 选择字段名称来实现相同的目的。不漂亮,但应该有用。

Aggregation agg = newAggregation(
project("key"),
group("ANYSTRINGWHICHISNOTFIELDNAME").addToSet("key").as("keylist")
);

您不必关心项目阶段,管道中的数据越少越好,但结果是一样的。

关于spring - 如何使用 Spring Mongodb 聚合 api 转换此查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749596/

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