在Mongo 3.3.0中使用QueryBuilder查询Mongo集合的java
我们与mongo java驱动程序3.0.4的代码过去类似-
DBCollection dbCollection = mongoClient.getDB(databaseName).getCollection(collectionName);
QueryBuilder queryBuilder = new QueryBuilder();
/** queryBuilder.put() for building the query */
DBCursor dbCursor = dbCollection.find(queryBuilder.get());
while(dbCursor.hasNext()) {
DBObject dbObject = dbCursor.next();
// add entries to a list of TDocument type
}
将其转换为mongo java驱动程序3.3.0,我最终得到了以下结果-
MongoCollection<TDocument> collection = database.getCollection(collectionName, TDocument.class); //where TDocument is custom document class of ours
QueryBuilder queryBuilder = new QueryBuilder();
/** queryBuilder.put() for building the query */
FindIterable<TDocument> tDocumentList = collection.find(queryBuilder.get()); //this is not compiling
for (TDocument element : tDocumentList) {
names.add(element.getName()); //addition to some list of TDocument type
}
但问题是,我仍然无法为我定义的MongoDB集合上的find
操作编译源代码
这里需要更正什么?我希望坚持使用任何有助于将mongo升级到3.3.0+的首选实现
Edit-MyTDocument
类(以下命名与库名不同)是一个简单的POJO,如下所示:-
public class TDocType {
private TDocType() {
}
String one;
@NotNull
String name;
String third;
String fourth;
// getter and setter for all the above
}
# 1 楼答案
您可以将查询生成器替换为组织。布森。文件如下:
然后
# 2 楼答案
投给Bson
更新:: 更改为使用Mongo 3.3.0中的过滤器