使用JAVA API
首次使用了query查询 查询前打印BSONObject结果如下:
{ "$or" : [ { "gcsj" : { "$gte" : { "$date" : "2016-01-21"} , "$lte" : { "$date" : "2016-01-26"}}} , { "gcsj" : { "$gte" : { "$date" : "2016-01-26"} , "$lte" : { "$date" : "2016-01-27"}}}] , "sbid" : { "$in" : [ "333" , "343" , "353" , "363"]}}
结果记录数 1 条。
再次使用aggregate 进行查询 查询前打印List 结果如下:
[{ "$match" : { "$and" : [ { "or" : [ { "gcsj" : { "$gte" : { "$date" : "2016-01-21"} , "$lte" : { "$date" : "2016-01-26"}}} , { "gcsj" : { "$gte" : { "$date" : "2016-01-26"} , "$lte" : { "$date" : "2016-01-27"}}}]} , { "sbid" : { "$in" : [ "333" , "343" , "353" , "363"]}}]}}]
结果记录数0条。
第一第二条表达式的区别在于第二条添加了$and和$match。
第三次使用query查询 查询前打印BSONObject 结果如下:
{ "$and" : [ { "or" : [ { "gcsj" : { "$gte" : { "$date" : "2016-01-21"} , "$lte" : { "$date" : "2016-01-26"}}} , { "gcsj" : { "$gte" : { "$date" : "2016-01-26"} , "$lte" : { "$date" : "2016-01-27"}}}]} , { "sbid" : { "$in" : [ "333" , "343" , "353" , "363"]}}]}
结果记录数也是0条。
第三次就是在第一次的基础上加了and 然后我就奇怪了.. 不是说and隐式的么... 为什么会这样?
以下是另外一次测试... 求解: