1、通用查询
List<Entity> dataList = mongoTemplate.find(
Query.query(Criteria.where("_id").in(idList)),
Entity.class,
CollectionName);
List<Document> data = new ArrayList<>();
BasicDBObject query = new BasicDBObject();
BasicDBList idAirList = new BasicDBList();
iidAirList.addAll(ids);
query.append("_id",new BasicDBObject("$in",idAirList));
query.append("data_time", BasicDBObjectBuilder.start("$gte", startTime)
.add("$lte", endTime).get());
MongoCursor<Document> cursor = mongoTemplate.getMongoDatabaseFactory().getMongoDatabase()
.getCollection(CollectionName)
.find(query)
.iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
data.add(document);
}
List<Entity> list=new ArrayList();
Query query = new Query();
query.addCriteria(Criteria.where("id").in(idList));
query.addCriteria(Criteria.where("update_time").gte(curTime));
list.addAll(mongoTemplate.find(
query,
Entity.class,
CollectionName
));
2.批查询
List<Bson> bsons = new ArrayList<>();
bsons.add(Filters.gte("date_time",dateTime));
bsons.add(Filters.in("_id",id));
bsons.add(Filters.in("type",type));
Iterable<Bson> bsonIterable = () -> new Iterator<Bson>() {
ListIterator<Bson> listIter = bsons.listIterator(bsons.size());
@Override
public boolean hasNext() { return listIter.hasPrevious(); }
@Override
public Bson next() { return listIter.previous(); }
@Override
public void remove() { listIter.remove(); }
};
Bson bson = Filters.and(bsonIterable);
Iterable<Document> iterable = mongoTemplate.getCollection("collectionName").find(bson).batchSize(5000);
List<Document> documents = new ArrayList<>();
iterable.forEach(a -> {
documents.add(a);
});
3.数据修改
List<Pair<Query, Update>> insertOrUpdateList = new ArrayList<>();
BulkOperations operations = mongoTemplate.bulkOps(
BulkOperations.BulkMode.UNORDERED,
CollectionName);
Query query = new Query(new Criteria("_id").is(entity.get_id()));
Update update = new Update();
update.set("name", entity.getName());
Pair<Query, Update> insertOrUpdate = Pair.of(query, update);
insertOrUpdateList.add(insertOrUpdate);
operations.upsert(insertOrUpdateList);
operations.execute();
4、对象转Docment
Document value = Document.parse(JSONUtil.toJsonStr(entity));