如何使用 MongoDB Java 检查集合 (Find_IN_SET) 中的字符串

How to check a String in a set (Find_IN_SET) using MongoDB Java

我正在使用 Java 在 MongoDB 中编写 Web 服务代码,我有一个 table,其中一列包含范围值,例如 1,2,3或 3,4,5 或 6,7,8 。给定一个值 2 ,我必须检查该值是否位于每个指定范围内 我在 MYSQL

中尝试了以下查询

select * from Table where FIND_IN_SET('2',RangeField)

我试过的 java 代码是

BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("RangeField","2");
DBCursor cursor = col.find(whereQuery);

我不知道在 Mongo Java 中定义 find_in_set 的正确语法。 RangeField 是 table 中的字符串,类似 1,2,3 或 3f,5f。如何在 mondoDB java 代码

中复制相同内容

谢谢

您可以使用regex获取所有包含搜索字符串的记录。

在MongoDB中:

db.Table.find({"RangeField":{$regex:"2"}}); //List records which contain 2 anywhere

在Java中:

BasicDBObject dbObject = new BasicDBObject();
dbObject.put("RangeField",  java.util.regex.Pattern.compile("2"));
try(DBCursor cursor = collection.find(dbObject))
{
    while (cursor.hasNext())
    {
        System.out.println((BasicDBObject) cursor.next());
    }
}