[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
  

發佈了131 篇原創文章 · 獲贊 10 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章