需要帮助将此代码转换为新的Mongo Java驱动程序
我正在将旧应用程序从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中编译... < br> 我了解我需要更改:
dbCollection to Mongocollection
dbobject要记录
findone to collection.find()。first()
我需要QueryBuilder对象的帮助,
如何实现“和”或“操作员”
I am converting an old application from mongo driver v1 to the latest version of mongo java driver
currently I am using:
<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>
The code I am facing issues is:
@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);
}
The code will not compile in the new version of mongo-java-driver...
I understand that I need to change:
DBCollection to MongoCollection
DBObject to Document
findOne to collection.find().first()
I need help with the QueryBuilder object ,
how to achieve the "and" "or" operator uysing the new driver
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为,如果您现在正在升级内容,最好使用Mongotemplate。您可以从
import org.springframework.data.data.mongodb.core.query.query.query;
从使用
QUERY
来构建查询和criteria
从导入org.springframework.data.mongodb.core.query.criteria;
。这是您可以结帐的片段,您的代码可以是类似的(我猜不是完全):
I think it's better to use MongoTemplate if you are upgrading things now. You can use
Query
fromimport org.springframework.data.mongodb.core.query.Query;
to build query andCriteria
fromimport org.springframework.data.mongodb.core.query.Criteria;
.here is a snippet you can checkout and your code can be something like that (not exactly i guess) :