zoukankan      html  css  js  c++  java
  • mongo 随记

    $inc 更新修改字段值:a.没有此字段则新增一个并把此次的值赋给它;b.有则在原来值的基础上累加(如原始值是4此次$Inc值是2则更新后的值为6)

    $set方法重新set了的字段的值,直接覆盖原来的值内容。

    public static void main(String[] args) {
    		MongoCollection<Document> collect = getTable();
    		Document s = new Document();
    		s.put("userid", "27");
    		//查看更新前userid=27的对象信息
    		Document o =collect.find(s).first();
    		System.out.println("更新前object:"+o);
    		Document q = new Document();
    		Document set = new Document();
    		Document up = new Document();
    		//$Inc方法更新累加字段值score原始值4此次累加值2更新后值应为6
    		q.put("$inc",up.append("score", 2));
    		//$set方法重新set了的字段的值
    		q.put("$set",set.append("status", "已支付").append("act_time", DateUtil.DateAdd(new Date(), -1)).append("title", "购买汽车"));
    		//更新userid=27的对象
    		collect.updateOne(Filters.eq("userid", "27"), q);
    		o =collect.find(s).first();
    		System.out.println("更新后object:"+o);
    	}
    

     输出结果:

    更新前object:Document{{_id=5cf657c3e7625a20d4914b51, address=南京, title=订单, status=贷款中---, userid=27, score=4, act_time=Fri Jun 14 13:32:48 CST 2019}}
    更新后object:Document{{_id=5cf657c3e7625a20d4914b51, address=南京, title=购买汽车, status=已支付, userid=27, score=6, act_time=Sun Jun 16 09:52:12 CST 2019}}
    

    查询指定时间的数据 ,返回数据只指定某个字段返回(例如如下只返回mobile字段则设置mobile:1就好,而_id字段是默认返回,若不返回则设置_id:0)

    db.getCollection('test').find(
      {
        "offerPrice" : { "$gte" : 1 , "$lt" : 12} ,
        "week_offerPrice" : { "$gte" : 1 , "$lt" : 23} ,
        "offerPrice_time" : { "$gte" : ISODate("2019-06-05T16:00:00.000Z") , "$lt" : ISODate("2019-06-11T16:00:00.000Z")}
      },
      {
        mobile:1,_id:0
      }
    )

    Java写法:

    //获取dbcollection对象
            DBCollection dbx = MongoAccessObj.getDBCollection().getCollection("silei");
            BasicDBObject queryObject = new BasicDBObject();
            //指定筛选条件
            queryObject.append("act_time", new BasicDBObject(QueryOperators.LT, DateUtil.DateAdd(new Date(), -5))
                    .append(QueryOperators.GTE, DateUtil.DateAdd(new Date(), -8)));
            queryObject.append("score", new BasicDBObject().append(QueryOperators.GTE, 3).append(QueryOperators.LT, 5));
            //选择默认返回的字段值
            BasicDBObject queryObject2 = new BasicDBObject();
            queryObject2.put("userid", 1);
            queryObject2.put("score", 1);
            queryObject2.put("address", 1);
            //查询开始
            DBCursor find = dbx.find(queryObject,queryObject2);
            if(find!=null) {//返回遍历
                while(find.hasNext()) {
                    DBObject  obj = find.next();//_id是默认返回的
                    System.out.println("----------1-----------:"+obj.toString());
                }
            }

     打印输出结果:

    ----------1-----------:{ "_id" : { "$oid" : "5cf657c3e7625a20d4914b51"} , "address" : "南京" , "userid" : "27" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2af"} , "address" : "北京" , "userid" : "30" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b0"} , "address" : "北京" , "userid" : "31" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b1"} , "address" : "北京" , "userid" : "32" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b2"} , "address" : "北京" , "userid" : "33" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b3"} , "address" : "北京" , "userid" : "34" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b4"} , "address" : "北京" , "userid" : "35" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b5"} , "address" : "北京" , "userid" : "36" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b6"} , "address" : "北京" , "userid" : "37" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b7"} , "address" : "北京" , "userid" : "38" , "score" : 4}
    ----------1-----------:{ "_id" : { "$oid" : "5cf71ad0e7625a1288d7c2b8"} , "address" : "北京" , "userid" : "39" , "score" : 4}
  • 相关阅读:
    C#中发送邮件,包含Html代码 CDO.Message
    CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板
    分享到微信朋友圈
    获取验证码效果和后台代码(js+html+cs)
    弹出遮罩层
    WebAPI上传文件
    zoj1665 dij变形
    hdu1535 SPFA
    hdu1217 floyd
    poj1703 并查集
  • 原文地址:https://www.cnblogs.com/devin-sl/p/10956022.html
Copyright © 2011-2022 走看看