查询SQL 为 select * from foo.bar where sbid in ("1001","1002") and not (gcsj > "2015-10-30 23:59:01" and gcsj
DBCollection dbcollection = sdb.getCollectionSpace("foo").getCollection("bar");
BasicBSONObject matcher= new BasicBSONObject();
BasicBSONList list1 = new BasicBSONList();
list1.put(0,new BasicBSONObject("sbid",new BasicBSONObject("$in",sbid)));
BasicBSONObject analysisTimeMatcher = new BasicBSONObject();
analysisTimeMatcher.put("$gt", analysisKssj);
analysisTimeMatcher.put("$lte", analysisJssj);
BasicBSONList list2 = new BasicBSONList();
list2.put(0, new BasicBSONObject("$not",new BasicBSONObject("gcsj",analysisTimeMatcher)));
list2.put(1,new BasicBSONObject("$and",list1));
matcher.put("$and",list2);
怎么这么写,老是会报错"com.sequoiadb.exception.BaseException: errorCode:-6,Invalid Argument"
若更改为:
DBCollection dbcollection = sdb.getCollectionSpace("foo").getCollection("bar");
BasicBSONObject matcher= new BasicBSONObject();
BasicBSONList list1 = new BasicBSONList();
list1.put(0,new BasicBSONObject("sbid",new BasicBSONObject("$in",sbid)));
BasicBSONObject analysisTimeMatcher = new BasicBSONObject();
analysisTimeMatcher.put("$gt", analysisKssj);
analysisTimeMatcher.put("$lte", analysisJssj);
BasicBSONList list2 = new BasicBSONList();
list2.put(0, new BasicBSONObject("gcsj",analysisTimeMatcher));
list2.put(1,new BasicBSONObject("$and",list1));
matcher.put("$and",list2);
则没有出错,可以查询。
有大神知道吗? 求救~