Java Spring mongo和运算符在同一字段上
我正在尝试使用数组值创建和运算符查询。我的代码是Java Spring mongo和运算符在同一字段上,java,spring,mongodb,Java,Spring,Mongodb,我正在尝试使用数组值创建和运算符查询。我的代码是 String[]={"abc","pqr",xyz}; Criteria criteria = new Criteria(); for (int i = 0; i < splited.length; i++) { criteria.andOperator(Criteria.where("attribute").regex("^" + splited[i], "i")); } Query query=new Query
String[]={"abc","pqr",xyz};
Criteria criteria = new Criteria();
for (int i = 0; i < splited.length; i++) {
criteria.andOperator(Criteria.where("attribute").regex("^" + splited[i], "i"));
}
Query query=new Query(criteria);
String[]={“abc”,“pqr”,xyz};
标准=新标准();
对于(int i=0;i
但是它给了我一个异常,比如
,由于com.mongodb.basicdboObject的限制,您不能添加第二个属性 为什么要用$和
拆分这些文件?您可以在正则表达式中执行此操作:
db.collection.find({
"attribute": {"$regex": "^abc|^pqr|^xyz", "$options": "i" }
})
更不用说,这实际上看起来像是正则表达式所做的$或
条件,您必须真正想要它,因为一个字符串不可能从字符串开始就匹配所有这些内容,您只能有一个
这应该很容易转化为springdata mongo方法。String[]={“abc”,“pqr”,xyz};
String[]={"abc","pqr",xyz};
Query query = new Query();
Criteria criteria;
for (int i = 0; i < splited.length; i++) {
criteria = Criteria.where("attribute").regex("^" + splited[i], "i");
query.addCriteria(criteria);
}
查询=新查询();
标准;
对于(int i=0;i