MongoDB將不同類對象存入同一個Collection

來源:互聯網
上載者:User

在mongodb中對應關係型資料庫中‘表’的概念為‘集合’,表中的資料結構是一致,mongodb以json格式儲存,集合資料是靈活的,mongodb的同一集合collection中可存不同結構的資料。下面為項目開發中測試的例子。

1.儲存

public void testSave(){


BizEntpris biz = new BizEntpris();
biz.setName("biztest01");

Country country = new Country();
country.setName("chinaName");


mongoTemplate.save(biz, "testMutiCollection");
mongoTemplate.save(country, "testMutiCollection");


BizEntpris biz2 = new BizEntpris();
biz2.setName("biztest02");

Country country2 = new Country();
country2.setName("chinaName02");


mongoTemplate.save(biz2, "testMutiCollection");
mongoTemplate.save(country2, "testMutiCollection");

}


2.查詢

public Map<String,Object> testQuery01(){

Map<String,Object> objMap = new HashMap<String, Object>();

Query query = new Query();

query.addCriteria(Criteria.where("name").is("biztest01"));

BizEntpris ent = mongoTemplate.findOne(query, BizEntpris.class, "testMutiCollection");

objMap.put("Entpris",ent);

Query q = new Query();

q.addCriteria(Criteria.where("name").is("chinaName01"));

Country country = mongoTemplate.findOne(q, Country.class, "testMutiCollection");

objMap.put("country", country);

List<Country> countryListAll = mongoTemplate.findAll(Country.class, "testMutiCollection");

objMap.put("countryListAll", countryListAll);//當findAll時查詢集合testMutiCollection所有的對象json資料,包含BizEntpris和Country的

List<BizEntpris> entListAll = mongoTemplate.findAll(BizEntpris.class, "testMutiCollection");

objMap.put("EntprisListAll", entListAll);//查詢集合testMutiCollection所有的對象json資料,包含BizEntpris和Country的

Query q1 = new Query();
System.out.println(Country.class.getSimpleName());
System.out.println(Country.class.getName());
q1.addCriteria(Criteria.where("_class").is(Country.class.getSimpleName()));

List<Country> countryList = mongoTemplate.find(q1,Country.class, "testMutiCollection");

objMap.put("countryListWithClass", countryList);



Query q2 = new Query();

q2.addCriteria(Criteria.where("_class").is(BizEntpris.class.getName()));

List<BizEntpris> entList = mongoTemplate.find(q2,BizEntpris.class, "testMutiCollection");

objMap.put("EntprisListWithClass", entList);

return objMap;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.