mongo java 嵌套模糊查询
例一
Query query = new Query();
Criteria criteria = new Criteria();
Criteria[] criterias = new Criteria[2];
if (StringUtils.isNotEmpty(search)) {
criterias[0] = Criteria.where("dataIndex").regex(".*?" + search + ".*?");
criterias[1] = Criteria.where("fileName").regex(".*?" + search + ".*?");
criteria.orOperator(criterias);
query.addCriteria(criteria);
}
query.skip(pageSize * (pageNum - 1));
query.limit(pageSize);
mongoTemplate.find(query, Document.class, collectionName);
例二
Criteria criteria = new Criteria();
Criteria[] criteriass = new Criteria[size];
for (int i = 0; i < paichu.size(); i++) {
criteriass[i] = Criteria.where("dataId").ne(map.getString("dataId"));
}
criteria.andOperator(criteriass2);
query.addCriteria(criteria);
例一
Document doc;
List<Document> batchList = new ArrayList<>();
for(String batchNum: batchNums.split(",")){
doc = new Document("uploadId",new Document("$regex",".*?"+batchNum));
batchList.add(doc);
}
Document query = new Document();
query.put("$or",batchList);
List<Document> dataList = mongoDao.findList(collectionName,query);
例二(简单好多)
query.put("uploadId",new Document("$nin"))
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
public class mongoDao{
public List<Document> findList(String collectionName, Document query) {
List<Document> list = new ArrayList<>();
FindIterable<Document> documentIter = getDBCollection(collectionName).find(query);
for (Document document : documentIter) {
list.add(document);
}
if ("[null]".equals(list)) {
return null;
}
return list;
}
}