想要得出appid>3 并且affid=2的数据,我没找到怎么链式相等
写了如下代码让affid大于等于2 ,又小于等于2 来寻找affid=2
DBCursor doc = ZMoCoinstalltest.find(ZMoDoc.M("appid","$gt","3").m("affid","$lte","2").m("affid","$gte","2"));//
问:
怎么让他链式相等的那个方法我没找到
想要得出appid>3 并且affid=2的数据,我没找到怎么链式相等
写了如下代码让affid大于等于2 ,又小于等于2 来寻找affid=2
DBCursor doc = ZMoCoinstalltest.find(ZMoDoc.M("appid","$gt","3").m("affid","$lte","2").m("affid","$gte","2"));//
问:
怎么让他链式相等的那个方法我没找到
@wendal $eq 不行,mongodb不识别这个;
想起来$in这个了,可以,就是不知道效率咋样
@wendal 直接下载的mongodb的薄封装项目学习的。
@wendal $or怎么写
我写的ZMoCoinstalltest.find(ZMoDoc.M("$or","affid",ZMoDoc.NEW("$lte","2")).gt("appid","2"));
结果:2017-6-29 17:48:44.279 DEBUG [http-nio-80-exec-4] db.installtest.find({ "$or" : { "affid" : { "$lte" : "2"}} , "appid" : { "$gt" : "2"}})
17-06-29 17:48:44.287 WARN [http-nio-80-exec-4] Error@/mongodb/find1 :
com.mongodb.MongoQueryException: Query failed with error code 13262 and error message '$or requires nonempty array' on server 192.168.1.152:27017
我知道or要查询的为数组,可是用ZMoDoc连不起来
@wendal 咳咳咳 意思是or这个查询操作不了么?
@wendal
ZMoDoc doc0 = ZMoDoc.NEW("affid",ZMoDoc.NEW("$lte","2"));
ZMoDoc doc1 = ZMoDoc.NEW("appid",ZMoDoc.NEW("$gte","2"));
就是这两个ZMoDoc ,满足任意一个都可以,试不出来
public static void main(String[] args) {
ZMoDoc doc0 = ZMoDoc.NEW("affid",ZMoDoc.NEW("$lte","2"));
ZMoDoc doc1 = ZMoDoc.NEW("appid",ZMoDoc.NEW("$gte","2"));
ZMoDoc query = ZMoDoc.NEW("$or", new Object[]{doc0.toMap(), doc1.toMap()});
System.out.println(query);
}
@wendal 厉害了我的兽总大大 !!完美解决