Spring Data MongoDB提供了MongoTemplate方便我们队Mongodb进行CRUD操作。
1.简单条件查询
单个条件查询
接口定义:
/** * 根据条件查询 * @param query * @param collectionName * @return */ T findOne(Query query,String collectionName);
Dao实现方法:
@Resource private MongoTemplate mongoTemplate; @Override public Order findOne(Query query, String collectionName) { return mongoTemplate.findOne(query, Order.class,collectionName); }
测试查询:使用Query
@Test public void findOne(){ String collectionName = "order"; //查询条件为:onumber = 001 Query query = new Query(Criteria.where("onumber").is("001")); Order order = orderMongoDao.findOne(query, collectionName); System.out.println(order.getCname()); }
@Test public void findOne2(){ String collectionName = "order"; //查询条件为:onumber = 001 and cname = kehu1 Query query = new Query(Criteria.where("onumber").is("001").and("cname").is("kehu1")); Order order = orderMongoDao.findOne(query, collectionName); System.out.println(order.getCname()); }
@Test public void findOne3() { String collectionName = "order"; // 查询条件为:onumber = 001 or onumber = 002 Query query = new Query( new Criteria().orOperator( Criteria.where("onumber").is("001"), Criteria.where("onumber").is("002")) ); Order order = orderMongoDao.findOne(query, collectionName); System.out.println(order.getCname()); }
测试查询:使用BasicQuery
@Test public void findOne4() { String collectionName = "order"; // 查询条件为:onumber=001 DBObject dbObject = new BasicDBObject(); dbObject.put("onumber", "001"); Query query = new BasicQuery(dbObject); Order order = orderMongoDao.findOne(query, collectionName); System.out.println(order.getCname()); }