【发布时间】:2012-10-10 08:52:59
【问题描述】:
我正在使用 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”。
我需要搜索整个单词。
【问题讨论】:
-
那么当您使用
val1作为关键字时会发生什么? -
h4bo - 如果我使用“val1”,我会得到预期的行,但如果我只给出“v”,我也会得到所有包含字符“v”的行。
-
您必须重新表述您的问题 - 我在这里看不到问题所在。你能提供一个集合、搜索查询、预期结果和实际结果的例子吗?
标签: java mongodb conditional-operator