[mongoDB]query 异常与测试 特性与疑问

测试代码:

DBObject queryCnd=ObjectAndDBObject.obj2DBObjectWithoutNull(like);
  
  DBObject fields=ObjectAndDBObject.obj2DBObject(like);
  DBObject field=new BasicDBObject(); 
  field.put("id",null); //我表示field真有弄懂是怎么回事
 
  //这个find 让人纠结啊,${1}是条件,可以使简单的一个DBObject{key:value}表示等于,可以以是两层嵌套的 {键:{条件:值}}
  //${2}是返回那些字段,具体还是没清楚
  int skip=(pageNo-1)*pageSize;
  int fetchSize=pageSize;
  
  DBCursor cusor= getTable().find(queryCnd,field,skip,fetchSize);

 

返回结果:

null-CAOshit
null-我靠egls
null-我靠egls
null-我靠egls
null-我靠egls
null-我靠egls
null-nullnull

 

疑问:分页限定没有起作用!?? 莫非那不是分页参数?坑爹?

test 2--------------------------------------------------------------------------------------------

 

测试代码:

DBObject field=new BasicDBObject();
  field.put("id",1); //设置id 字段的值,查询结果将被这个值,覆盖
  field.put("chinese","貌似标记了才会去查询"); // s
  

 

结果:

44-CAOnull
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-我靠null
44-nullnull
44-nullnull

test3-------------------------------------------------------------------------------------------------
DBObject field=new BasicDBObject();
  field.put("id",1); //设置id 字段的值,查询结果将被这个值,覆盖
  field.put("chinese",null); //如果为null,则覆盖结果,如果有值,则是默认值,会被非null给过覆盖

发生异常 :

com.mongodb.MongoException: You cannot currently mix including and excluding fields. Contact us if this is an issue.
 at com.mongodb.MongoException.parse(MongoException.java:82)
 at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:302)
 at com.mongodb.DBCursor._check(DBCursor.java:354)
 at com.mongodb.DBCursor._hasNext(DBCursor.java:484)
 at com.mongodb.DBCursor.hasNext(DBCursor.java:509)
 at cn.allchin.nosql.mongoDB.dao.impl.BasicCRUDMongoDAO.queryPage(BasicCRUDMongoDAO.java:92)
 at cn.allchin.nosql.mongoDB.dao.impl.tester.CURDTester.main(CURDTester.java:49)

 

看来

 "可以没有key,但是value不能为null"

 

 

有高手能够解释下么??这三个test
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值