测试代码:
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