MongoDB查询语句 Criteria

MongoDB是一种文档型数据库,它使用BSON(Binary JSON)格式存储数据。在使用MongoDB进行数据查询时,我们可以使用Criteria来构建查询语句。

Criteria简介

Criteria是MongoDB中用于构建查询条件的一种对象。它提供了一种简单而灵活的方式来表达查询条件,并与MongoDB的查询语法相对应。

Criteria的使用

在使用Criteria构建查询语句时,我们需要先创建一个Criteria对象,然后使用一系列的方法来定义查询条件。下面是一些常用的查询条件方法示例:

等于条件

使用is方法可以指定字段的值等于某个特定的值。例如,查询name字段等于"John"的文档:

Criteria criteria = Criteria.where("name").is("John");

不等于条件

使用ne方法可以指定字段的值不等于某个特定的值。例如,查询age字段不等于25的文档:

Criteria criteria = Criteria.where("age").ne(25);

大于条件

使用gt方法可以指定字段的值大于某个特定的值。例如,查询age字段大于30的文档:

Criteria criteria = Criteria.where("age").gt(30);

小于条件

使用lt方法可以指定字段的值小于某个特定的值。例如,查询age字段小于40的文档:

Criteria criteria = Criteria.where("age").lt(40);

大于等于条件

使用gte方法可以指定字段的值大于等于某个特定的值。例如,查询age字段大于等于20的文档:

Criteria criteria = Criteria.where("age").gte(20);

小于等于条件

使用lte方法可以指定字段的值小于等于某个特定的值。例如,查询age字段小于等于50的文档:

Criteria criteria = Criteria.where("age").lte(50);

包含条件

使用in方法可以指定字段的值属于某个特定的集合。例如,查询name字段的值为"John"或"Tom"的文档:

Criteria criteria = Criteria.where("name").in("John", "Tom");

不包含条件

使用nin方法可以指定字段的值不属于某个特定的集合。例如,查询name字段的值不为"John"或"Tom"的文档:

Criteria criteria = Criteria.where("name").nin("John", "Tom");

Criteria的组合使用

除了上述单个条件的使用,我们还可以通过逻辑运算符来组合多个条件。常用的逻辑运算符有"and"、"or"和"not"。

与条件

使用andOperator方法可以指定多个条件需同时满足。例如,查询name字段等于"John"并且age字段大于30的文档:

Criteria criteria = new Criteria().andOperator(
    Criteria.where("name").is("John"),
    Criteria.where("age").gt(30)
);

或条件

使用orOperator方法可以指定多个条件中至少一个满足。例如,查询name字段等于"John"或age字段大于30的文档:

Criteria criteria = new Criteria().orOperator(
    Criteria.where("name").is("John"),
    Criteria.where("age").gt(30)
);

非条件

使用notOperator方法可以指定条件不满足。例如,查询name字段不等于"John"的文档:

Criteria criteria = new Criteria().notOperator(
    Criteria.where("name").is("John")
);

结语

通过使用Criteria,我们可以灵活地构建MongoDB的查询语句。它提供了丰富的条件选项,并且可以通过逻辑运算符进行条件的组合。希望本文能够帮助你更好地理解和使用MongoDB的查询功能。

![饼状图示例](