Spring Data MongoDBまとめ

3000 ワード

まず会社のプロジェクトで使う技術は、SpringCloud+Spring Data MongoDB
Spring-Data-MongoDBの構造位置:hibernateは従来のデータベースのORMフレームワーク(Object Relational Mappingオブジェクト関係マッピング、略称、ORM)mongodyはnosqlの非関係型データベースmongodyのORMフレームワークであり、mongodbがMorphiaフレームワークまたはspring-data-mongodbフレームワークを公式に提供している
Javaプログラムでmongodb構文を使用するには、まずjarパッケージimport orgを導入する.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update;
1.クエリー:QueryクラスとCriteriaクラスを使用してクエリーを表現します.(Criteriaクラス:完全オブジェクト向けプログラミングクエリー方式Criteriaは完全オブジェクト向けであり、拡張可能な条件クエリーAPIであり、データベースの下位層がどのように実現されるか、SQL文がどのように記述されるかを全く考慮する必要がなく、Hibernateフレームワークのコアクエリーオブジェクトである.HibernateはCriteriaSpecificationインタフェース仕様を定義してオブジェクト向けの条件クエリーを完了し、CriteriaはCriteriaSpecificationのサブインタフェースです.
Queryクラス:Queryはクエリーパラメータクラスで、クエリー条件、ページング、ソートなどの機能をカプセル化しています.不規則なページングを実現:Query query=new Query()である.limit(3,5); 時間ソート:Query=new Query().orderby(“create_time”,Sort.DESC); )
//まずmongoTemplateオブジェクトを注入する
@Autowired
private MongoTemplate mongoTemplate;

//まずは新規照会
Query query = new Query();

//()にクエリー条件を書くことができます.
Query query = new Query(Criteria.where("delFlag").is("0"));

//()に書くことができる:
Query query = new Query();
query.addCriteria(Criteria.where("sap_no").is(no));

//または
Query query = new Query();
Criteria criteria = Criteria.where("exp_no").is(expNo);
query.addCriteria(criteria);

//ファジイ照会
 if (!StringUtils.isEmpty(tshareAdvertisement.getAdSupplier())) {
            String regex = "^.*"+tshareAdvertisement.getAdSupplier()+".*$";
            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
            query.addCriteria(Criteria.where("adSupplier").regex(pattern));
        }

//すべて検索
mongoTemplate.findAll(Object.class);

//戻る:
return mongoTemplate.find(query, Sample.class);

2.更新//まず更新するidを検索する
Query query=new Query(Criteria.where("_id").is(id));

//別々に書く:
Update update = Update.update("      ", "    ");

mongoTemplate.updateFirst(query, update, Object.class);

//直接でもいいです.set
Update update = new Update().set("name",name).set("nationCode",nationCode).set("nationName",nationName).set("location",locationList);

//戻る
return mongoTemplate.findAndModify(query, update, Airport.class);

3.削除はクエリ+更新
Query query = new Query(Criteria.where("id").is(tshareAdvertisement.getId()));
Update update = new Update().set("delFlag", "1").set("updateTime", new Date());
return mongoTemplate.findAndModify(query, update, TshareAdvertisement.class);