簡體   English   中英

java代碼中如何使用MongoTemplate cond和filter?

[英]How to use MongoTemplate cond and filter in java code?

如何在 springframework_data_mongodb 中使用 like image?

在此處輸入圖像描述

這是來自 MongoDB 手冊的示例,用於$filter聚合轉換為 Spring 數據 MongoDB 代碼。 相同的語法可以應用於有關使用$filtercondition的問題。

MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "test");
Aggregation agg = newAggregation(
                      project()
                         .and(filter("items")
                              .as("item")
                              .by(Gte.valueOf("item.price").greaterThanEqualToValue(100)))
                         .as("items")
);
        
AggregationResults<Document> results = mongoOps.aggregate(agg, "sales", Document.class);        
results.forEach(doc -> System.out.println(doc.toJson()));

參考: org.springframework.data.mongodb.core.aggregation.ArrayOperators.Filter

如果您使用Java 8Spring 數據 MongoDB 3.0.3.RELEASE ,則這是針對您的問題的特定代碼。

import static org.springframework.data.mongodb.core.aggregation.Aggregation.match;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.project;
import static org.springframework.data.mongodb.core.aggregation.ArrayOperators.Filter.filter;
import static org.springframework.data.mongodb.core.query.Criteria.where;

MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "database");
ProjectionOperation projectionOperation =  project().and(filter("fields")
                 .as("field")
                 .by(Eq.valueOf("field.code").equalToValue("EngName")))
                 .as("fields");
MatchOperation matchOperation = match(where("fields.value").in("A","B"));
Aggregation agg = Aggregation.newAggregation(projectionOperation,matchOperation);
AggregationResults<Document> docs = mongoOps.aggregate(agg, "collection", Document.class);
        
docs.forEach(doc->System.out.println(doc));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM