MongoDB JAVA常见操作

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));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值