mongdb 嵌套操作
来源:互联网 发布:下载排卵期测算软件 编辑:程序博客网 时间:2024/05/19 07:08
package com.hexun.mobile.commerce.controller;import java.util.Date;import java.util.List;import javax.annotation.Resource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.data.domain.Sort;import org.springframework.data.domain.Sort.Direction;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.aggregation.Aggregation;import org.springframework.data.mongodb.core.aggregation.AggregationResults;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import org.springframework.data.mongodb.core.query.Update.Position;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.google.gson.Gson;import com.google.gson.JsonParser;import com.hexun.mobile.commerce.model.NewsTest;import com.hexun.mobile.commerce.model.NewsTest2;import com.hexun.mobile.commerce.model.Price;import com.hexun.mobile.common.response.BaseResponse;import com.mongodb.BasicDBObject;@Controller@RequestMapping("/test")public class TestController {private static final Logger logger = LoggerFactory.getLogger(TestController.class);private static final JsonParser parser = new JsonParser();Gson gson = new Gson();final String ID = "5a1e50584fbaeb80d74db028";@Resource(name = "mongoTemplate")private MongoTemplate mongoTemplate;@RequestMapping(value = "/test")@ResponseBodypublic Object add(){Price price = new Price();price.setIno("wkc");price.setPrice(11111);price.setQuantity(9999999);price.setDate1(new Date());Criteria criteria = new Criteria(); criteria.and("_id").is(ID); Query query = new Query(criteria); Update update = new Update().push("items", price); //Update update = new Update().pull("items.ino", price);//报错 mongoTemplate.updateFirst(query, update, NewsTest.class); BaseResponse<String> rsp = new BaseResponse<String>();return rsp;}@RequestMapping(value = "/pop")@ResponseBodypublic Object pop(){Criteria criteria = new Criteria(); criteria.and("_id").is(ID);Query query = new Query(criteria); Update update = new Update().pop("items", Position.FIRST); mongoTemplate.updateFirst(query, update, NewsTest.class); BaseResponse<String> rsp = new BaseResponse<String>();return rsp;}/** * 指定删除 OK * @return */@RequestMapping(value = "/del3")@ResponseBodypublic Object del3(){Query query = Query.query(Criteria.where("_id").is(ID));BasicDBObject doc = new BasicDBObject(); doc.put("ino","wkc"); doc.put("price", 11111); Update update = new Update();update.pull("items",doc); mongoTemplate.updateFirst(query,update, NewsTest.class); BaseResponse<String> rsp = new BaseResponse<String>();return rsp;}/** * 修改OK * * @return */@RequestMapping(value = "/update")@ResponseBodypublic Object update(){Query query = Query.query(Criteria.where("_id").is(ID).and("items.ino").is("wkc").and("items.price").is(11111));Update update = new Update();update.set("items.$.quantity", "3332");update.set("items.$.price", "8882"); mongoTemplate.updateFirst(query,update, NewsTest.class); BaseResponse<String> rsp = new BaseResponse<String>();return rsp;}/** * 查询OK * * @return */@RequestMapping(value = "/find")@ResponseBodypublic Object find(){Criteria criteria = new Criteria(); criteria.and("_id").is(ID);//criteria.where("_id").is(ID);criteria.and("items.ino").is("wkc");Query query = new Query(criteria); query.with(new Sort(Direction.DESC,"items.date")); List<NewsTest> list = mongoTemplate.find(query,NewsTest.class); //boolean b =mongoTemplate.exists(query, NewsTest.class);BaseResponse<List<NewsTest>> rsp = new BaseResponse<List<NewsTest>>();rsp.setDatas(list);return rsp;}@RequestMapping(value = "/count")@ResponseBodypublic Object count(){Criteria criteria = new Criteria(); criteria.and("cname").is("bhhs");Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(criteria),Aggregation.project("items"),Aggregation.unwind("items"),Aggregation.match(Criteria.where("items.ino").is("wkc"))); //AggregationResults<BasicDBObject> aggregationResults = mongoTemplate.aggregate(aggregation, "cytest",BasicDBObject.class);AggregationResults<NewsTest2> aggregationResults = mongoTemplate.aggregate(aggregation, "cytest",NewsTest2.class); //boolean b =mongoTemplate.exists(query, NewsTest.class);BaseResponse rsp = new BaseResponse();rsp.setDatas(aggregationResults.getMappedResults());return rsp; }/** * 查询OK * * @return */@RequestMapping(value = "/sort")@ResponseBodypublic Object sort(){Criteria criteria = new Criteria(); criteria.and("cname").is("bhhs");//criteria.where("_id").is(ID);//criteria.and("items.ino").is("wkc");//Query query = new Query(criteria); //query.with(new Sort(Direction.DESC,"items.date"));Aggregation aggregation = Aggregation.newAggregation(//Aggregation.match(Criteria.where("_id").is(ID)),Aggregation.match(criteria),Aggregation.project("items"),Aggregation.unwind("items"),Aggregation.match(Criteria.where("items.ino").is("wkc")),Aggregation.sort(new Sort(Direction.ASC,"items.date1")));//AggregationResults<BasicDBObject> aggregationResults = mongoTemplate.aggregate(aggregation, "cytest",BasicDBObject.class);AggregationResults<NewsTest2> aggregationResults = mongoTemplate.aggregate(aggregation, "cytest",NewsTest2.class); //boolean b =mongoTemplate.exists(query, NewsTest.class);BaseResponse rsp = new BaseResponse();rsp.setDatas(aggregationResults.getMappedResults());return rsp; }@RequestMapping(value = "/find2")@ResponseBodypublic Object find2(){Query query = Query.query(Criteria.where("items.ino").is("wkc")).with(new Sort(Direction.DESC,"items.date")); List<NewsTest> list = mongoTemplate.find(query,NewsTest.class); //boolean b =mongoTemplate.exists(query, NewsTest.class);BaseResponse<List<NewsTest>> rsp = new BaseResponse<List<NewsTest>>();rsp.setDatas(list);return rsp;}}
阅读全文
1 0
- mongdb 嵌套操作
- PHP操作mongdb(1)----连接mongdb
- mongdb操作数组字段
- java操作mongdb
- mongdb用户名密码操作
- mongdb操作笔记
- NoSql---MongDB基本操作
- mongdb文档操作
- mongdb聚合操作
- mongdb操作符
- MONGDB查询操作
- MongDB java 操作
- Mongdb基本操作符
- Mongdb基本操作
- mongdb删除操作
- MongDB 学习 第九节 c#操作
- PHP操作Mongdb(4)----插入
- MongDB读取操作(c++)
- ubuntu16.04下安装ros
- svg 可缩放矢量图形 ---拆
- 堆排序实现优先队列(Priority queue)
- Solr之定时重建索引-yellowcong
- wordcloud用来制作词云
- mongdb 嵌套操作
- linux下oracle服务与监听
- Linux常用命令大全
- 设计模式--桥接模式
- 有限状态机
- Window & ubuntu(非root用户)编译caffe并运行py-faster-rcnn
- Linux CentOS 6.3安装ffmpeg
- sql获取不规则日期两个'-'之间的数据
- react数据传递----props