草庐IT

Criteria

全部标签

java - 添加第二个 '$or' 表达式失败

我正在尝试通过JavaAPI查询带有两个“或”子句的mongodb集合。当通过任何mongo客户端运行时,以下查询工作正常:{$and:[{$or:[{“field1”:“value1”},{“field1”:“value2”}]},{$or:[{“field2”:“value3”},{“field2”:“value4”}]}]}但是当我尝试使用JavaAPI运行它时,出现以下错误:org.springframework.data.mongodb.InvalidMongoDbApiUsageException:Duetolimitationsofthecom.mongodb.Basic

mongodb - 如何将多个条件传递给 Criteria.elemMatch() Api?

我有一种情况想在elemMatch中提供3个条件org.springframework.data.mongodb.core.query.Criteria提供的方法调用应用程序接口(interface)。Inventory集合看起来像这样-{"_id":"H-P3NCDST45""booking":[{"updateDate":ISODate("2018-01-29T13:32:03.789Z"),"status":"STARTED","message":"abc"},{"updateDate":ISODate("2018-01-29T13:32:04.789Z"),"status":"

java - 如何检查该值至少等于列表中的一个字段?

我有这样的方法:for(StringfieldName:fieldArray){Queryquery=newQuery();query.addCriteria(Criteria.where("data."+fieldName).is("some_constant"));if(mongoTemplate.find(query,DataPoint.class).size()>0){returntrue;}}returnfalse;这段代码看起来效率低下,因为它访问db的字段数组大小如此之多。有没有办法使用单个查询来替换它? 最佳答案 为

spring - 如何使用 spring data mongodb 聚合框架在组操作中使用 Criteria.ne?

我正在尝试在组操作中使用springdatamongodb的Criteria.ne操作,但到目前为止还没有做对。这部分缺少spring数据文档中的示例。谁能给我举个例子说明我该怎么做?这就是我正在尝试的方式:Criteriacriteria=newCriteria();criteria=criteria.ne(newString[]{"$someKey","$someotherkey"});Fieldfield=Fields.field("comparison",criteria.toString());fields=fields.and(field);AggregationOpera

mongodb - Spring 数据匹配和过滤嵌套数组

如何从嵌套数组中提取数据?我想提取数组项“值”,其中wind_speed参数值介于vitRange.min和vitRange.max之间(twaRange和风向的条件相同)数据:{"name":"race","polaire":[{"voile":"foc","matrice":[{"vitRange":{"min":0,"max":4},"twaRange":{"min":0,"max":30},"values":[0,0,0,2.4]},{"vitRange":{"min":4,"max":6},"twaRange":{"min":30,"max":33},"values":[0,

spring - 使用 Spring Data MongoDB Criteria 构建动态查询

我想对用户在UI中选择的MongoDB中的文档列表运行批量删除操作,因此我需要动态构建一个如下所示的查询(or子句针对每个文档展开选中):{$and:[{"contentType":"application/vnd.sometype"},{$or:[{"metadata.name":"someName","metadata.version":"someVersion"},{"metadata.name":"someOtherName","metadata.version":"someOtherVersion"}]}]},Fields:null,Sort:null刚才我正在使用字符串连接

mysql - JPA中如何使用mysql的FIELD()函数

我的sql查询是这样的Select*fromtableAorderbyFIELD('ID',3,5,2)如何使用criteriabuilder在JPA中实现它?编辑ListordList=newArrayList();ordList.add(3);ordList.add(5);ordList.add(2);public ListgetOrderBys(CriteriaBuilder cb,Root root){ List orders = new ArrayList();        orders.add(cb.function("FIELD",Integer.class,root.

java - 按期限长度排序的 Hibernate 标准

我想按长度排序我的术语,这相当于:SELECTtermFROMwheretermlike'%now%'orderbylength(term)asc;处于hibernate状态。目前这是我的标准代码:Criteriacriteria=session.createCriteria(myClass.class);criteria.setProjection(Projections.distinct(Projections.property("term")));criteria.add(Restrictions.ilike("term","%xyz%"));criteria.addOrder(

mysql - yii 中的 CDbcriteria.?

如何使用CDBcriteria编写以下查询,我正在尝试使用cdbcriteria在GridView中显示我的数据。是否有任何其他方法可以在不使用CDBcriteria的情况下在cgridview中显示数据。SELECT*FROM`user`WHERErole='employer'Ihavetriedlikebelow:$criteria=newCDbCriteria;$criteria->condition='role=employer';returnnewCActiveDataProvider('manageemployers',array('criteria'=>$criteria

php - 具有正则表达式字符类的 CDbCriteria 参数

我正在尝试在Yii中使用CDbCriteria和REGEXP健康)状况。我将MySQL标记用于单词边界,即[[:和[[:>:]],但这似乎与Yii冲突,因为我得到“无效的参数编号:绑定(bind)变量的数量与标记的数量不匹配”。我假设这是因为单词边界标记使用了冒号,这也是用于绑定(bind)参数的冒号。有解决办法吗?$criteria=newCDbCriteria;$criteria->addCondition('colregexp"[[::]]"');$criteria->params=array(':app'=>$app);$details=Post::model()->find(