java - 使用 spring mongo 模板在 MongoDB 聚合功能的 'project' 中添加额外的键值对

标签 java spring mongodb spring-mongodb

Aggregation agg = newAggregation(
                    match(criteria),
                    group("username").count().as("userCount"),
                    project("userCount").and("_id").as("user")
            );

   AggregationResults<MyTarget> dataObjects = mongoTemplate
            .aggregate(agg, <collectionName>, MyTarget.class);

在上面的示例中,我在 MyTarget 类中还有一个字段说 - 'extraField' - 可以为其分配少数预定义值之一(让我们说 - “abc”和“xyz” ).我在访问 MongoDB 之前就知道这个值。

如何将这个额外的键值 ["extraField": "abc"] 对添加到上面的投影中。

最佳答案

使用$literal

 project("userCount").and("_id").as("user").and("abc").asLiteral().as("extraField")

关于java - 使用 spring mongo 模板在 MongoDB 聚合功能的 'project' 中添加额外的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682583/

相关文章:

c# - 如何在 C# .Net 中使用 InsertOneAsync 将文档插入到 MongoDB 并返回相同的文档或其 ID

javax.naming.NoInitialContextException - Java

java - 异常 :com. sun.jersey.spi.inject.Errors$ErrorMessagesException

mongodb - 这种带有嵌套子文档的模式会降低性能吗?

java - ContextConfiguration 抛出 java.io.FileNotFoundException :

java - 使用 Spring RestTemplate 将 JSONP 转换为 JSON

mongodb - 合并mongoDB中的两个数组字段

java - Spring boot 不提供 src/main/resources/public 目录中的某些图像

java - 如何知道 Looper 是否正在运行?

java - 构造函数 Category(String, String) 不可见 - 使用 lombok 为某些字段创建构造函数?