[英]need help converting this code to new Mongo Java driver
我正在將舊應用程序從 mongo 驅動程序 v1 轉換為最新版本的 mongo java 驅動程序
目前我正在使用:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.11</version>
</dependency>
我面臨的問題的代碼是:
@Override
public String getSubTypeName(String flowerId, Integer subTypeId) {
DBCollection collection = mongoTemplate.getCollection("flowers");
QueryBuilder query = new QueryBuilder();
query.and("configType").is("FLOWER_SUB_TYPE")
.and("parentConfig").is(flowerId)
.and("configKey").is(subTypeId)
.or(
QueryBuilder.start("isDeleted").is(false).get(),
QueryBuilder.start("isDeleted").exists(false).get()
);
DBObject flowerName = collection.findOne(query.get());
if(flowerName ==null || !flowerName.containsField("value"))
return "empty";
else return (String) flowerName.get("value);
}
該代碼在新版本的mongo-java-driver中將無法編譯...
我明白我需要改變:
DBCollection 到 MongoCollection
DBObject 到文檔
findOne 到 collection.find().first()
我需要有關 QueryBuilder 對象的幫助,
如何使用新驅動實現“與”“或”運算符
我認為如果您現在正在升級東西,最好使用 MongoTemplate。 您可以使用Query
from import org.springframework.data.mongodb.core.query.Query;
從import org.springframework.data.mongodb.core.query.Criteria;
構建查詢和Criteria
; .
這是一個您可以簽出的片段,您的代碼可能是這樣的(我猜不完全是):
Query query = new Query();
Criteria criteria = Criteria.where("configType").is("configType")
.and("parentConfig").is(flowerId)
.and("configKey").is(subTypeId)
.orOperator(Criteria.where("isDeleted").is(false)
.and("isDeleted").exists(false));
query.addCriteria(criteria);
BasicDBObject result = mongoTemplate.findOne(query,BasicDBObject.class,"flowers");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.