我正在使用 Java Mongo DB 驱动程序。
我正在做一些 OR 和 AND 操作来查询集合。
QueryObj = new BasicDBObject("key1",Pattern.compile("v",Pattern.CASE_INSENSITIVE));
QueryList.add(QueryObj);
DBObject OrQuery = new BasicDBObject("$or", QueryList);
DBCursor cursor = MyCollection.find(OrQuery);
我的示例集合有 4 行(JSON 格式可能是错误的)
{
"key1": ["val1","val3"]
},
{
"key1": ["val2","val3"]
},
{
"key1": ["val3"]
},
{
"key1": ["val1","val2"]
}
如果我搜索“val2”
QueryObj = new BasicDBObject("key1",Pattern.compile("val2",Pattern.CASE_INSENSITIVE));
我得到预期的输出第 2 行和第 4 行
{
"key1": ["val2","val3"]
},
{
"key1": ["val1","val2"]
}
如果我只搜索“v”
QueryObj = new BasicDBObject("key1",Pattern.compile("v",Pattern.CASE_INSENSITIVE));
我应该得到空集,但得到所有 4 行,尽管数组有一个字符“v”。
我需要搜索整个单词。