spring-mongo-template中對內嵌集合對象 不定參數的查詢

測試數據:

{
  "_id" : ObjectId("54c752ed5c01557fc2eba8f1"),
  "title" : "測試1,27",
  "products" : [{
      "name" : "石油",
      "classid" : "001",
      "status" : "1",
      "isorg" : "Y",
      "_class" : "jyd.info.article.model.Customization"
    }],
}

/* 2 */
{
  "_id" : ObjectId("54c755f34c2815a1467c5391"),
  "title" : "測試多產品",
  "products" : [{
      "name" : "nn油",
      "classid" : "001002",
      "status" : "1",
      "isorg" : "Y",
      "_class" : "jyd.info.article.model.Customization"
    }, {
      "name" : "xx油",
      "classid" : "001003",
      "status" : "1",
      "isorg" : "Y",
      "_class" : "jyd.info.article.model.Customization"
    }, {
      "name" : "ss油",
      "classid" : "001",
      "status" : "1",
      "isorg" : "Y",
      "_class" : "jyd.info.article.model.Customization"
    }]
}

/* 3 */
{
  "_id" : ObjectId("54c758664c28d74b28d8dc67"),
  "_class" : "jyd.info.article.model.Article",
  "title" : "test3",
  "products" : [{
      "name" : "eee",
      "classid" : "001005",
      "status" : "1",
      "isorg" : "Y",
      "_class" : "jyd.info.article.model.Customization"
    }]
}
需要的接口:

List<Article> selectByParas(String[] products,String columnId);

接口實現:

	@Override
	public List<Article> selectByParas(String[] products, String columnId) {
		Query query = new Query();
		Criteria c = new Criteria();
		Criteria[] c1 = new Criteria[products.length+1];
		for(int i=0;i<products.length;i++){
			c1[i] = Criteria.where("products.classid").is(products[i]);
		}
		c1[products.length] = Criteria.where("columnId").is(columnId);
		c.andOperator(c1);
		query.addCriteria(c);
		return mongoTemplate.find(query, Article.class);
	}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章