如何使用 $and 和 $or 子句在 Spring boot for mongodb 存储库中构建自定义查询?
How to build custom query in Spring boot for mongodb repository with $and and $or clause?
如何为 mongodb(使用 mongodb 模板)在 Spring 引导中为以下查询构建自定义查询?
db.getCollection('collectionName').find(
{$or:[
{$and:[{"name":"xyz"},{"address:"1234"}]},
{$and:[{"name":"abc"},{"address":"001"}]},
{..}
{..so on..}
]})
我们可以使用Criteria Query来查询吗?
您可以通过这种方式构建查询:
Criteria criteria = new Criteria();
criteria.orOperator(
Criteria.where("name").is("xyz").and("address").is("1234"),
Criteria.where("name").is("abc").and("address").is("001"),
Criteria.where(...),
Criteria.where(...)
);
Query query = new Query(criteria);
mongoTemplate.find(query, YourClass.class, "CollectionName");
如果您必须使用的标准数量不固定,您可以填充 Criteria
列表并将其传递给 orOperator
函数:
List<Criteria> criterias = new ArrayList<>();
for (...) {
//populate list
criterias.add(Criteria.where(...).is(...).and(...).is(...);
}
Criteria criteria = new Criteria();
criteria.orOperator(criterias);
如何为 mongodb(使用 mongodb 模板)在 Spring 引导中为以下查询构建自定义查询?
db.getCollection('collectionName').find(
{$or:[
{$and:[{"name":"xyz"},{"address:"1234"}]},
{$and:[{"name":"abc"},{"address":"001"}]},
{..}
{..so on..}
]})
我们可以使用Criteria Query来查询吗?
您可以通过这种方式构建查询:
Criteria criteria = new Criteria();
criteria.orOperator(
Criteria.where("name").is("xyz").and("address").is("1234"),
Criteria.where("name").is("abc").and("address").is("001"),
Criteria.where(...),
Criteria.where(...)
);
Query query = new Query(criteria);
mongoTemplate.find(query, YourClass.class, "CollectionName");
如果您必须使用的标准数量不固定,您可以填充 Criteria
列表并将其传递给 orOperator
函数:
List<Criteria> criterias = new ArrayList<>();
for (...) {
//populate list
criterias.add(Criteria.where(...).is(...).and(...).is(...);
}
Criteria criteria = new Criteria();
criteria.orOperator(criterias);