如何在Java Mongo中指定多个条件

如何在Java Mongo中指定多个条件,java,mongodb,mongo-java,Java,Mongodb,Mongo Java,我有一个代码,它要求我从mongo数据库集合中获取用户详细信息 以下是“我的用户”集合中的一个字段 "emailSettings" : { "flag1" : true, "flag2" : true, "flag3" : true, }, 我正在使用BasicDB对象从java程序解析Mongo集合,我希望获得满足emailSettings.flag1=true和emailSettings.flag2=true的所有条目 当我使用BasicDBObject执行此操作时

我有一个代码,它要求我从mongo数据库集合中获取用户详细信息

以下是“我的用户”集合中的一个字段

"emailSettings" : {
    "flag1" : true,
    "flag2" : true,
    "flag3" : true,
},
我正在使用
BasicDB
对象从java程序解析Mongo集合,我希望获得满足
emailSettings.flag1=true
emailSettings.flag2=true
的所有条目

当我使用
BasicDBObject
执行此操作时,我能够获得只满足其中一个条件的条目


有解决方案吗?

在Mongo中,查询部分默认与“and”运算符组合。这么简单的做

DBObject query = BasicDBObjectBuilder.start("emailSettings.flag1", true).add("emailSettings.flag2", true).get();

应该会给出预期结果。

在Mongo中,查询部分默认与“and”运算符组合。这么简单的做

DBObject query = BasicDBObjectBuilder.start("emailSettings.flag1", true).add("emailSettings.flag2", true).get();

应该会给您预期的结果。

如果我还需要检查上述语句中的条件,例如:我需要检查emailsettings.email字段是否有“@gmail.com”,我需要检查是否有子字符串“test.com”在电子邮件id中field@Raja您可以使用regexp:如果我还需要检查上述语句中的条件,例如:我需要检查emailsettings.email字段是否有“@gmail.com”,并且我需要检查电子邮件id中是否有子字符串“test.com”field@Raja您可以使用regexp进行以下操作: