2017-04-09 145 views
0

我想在MongoDB中运行一个查询,该查询返回包含至少一个字符串数组元素的集合的不同文档。例如,如果我有一个包含A,B,C的列表,则查询应返回包含“A”“B”“C”的所有不同文档。我写了这个查询:查找包含字符串数组中至少一个元素的文档

BasicDBObject query = new BasicDBObject("A", new BasicDBObject("$exists", true)); 
query.append("B", new BasicDBObject("$exists", true)). 
append("C", new Basicstrong textDBObject("$exists", true)); 

但它返回有 “A” “B” “C” 的所有文件。我怎样才能做到这一点?谢谢。

回答

1

您已经明确$or的文件。

BasicDBList orList = new BasicDBList(); 
orList.add(new BasicDBObject("A", new BasicDBObject("$exists", true))); 
orList.add(new BasicDBObject("B", new BasicDBObject("$exists", true))); 
orList.add(new BasicDBObject("C", new BasicDBObject("$exists", true))); 

BasicDBObject or = new BasicDBObject("$or", orList); 
+0

这是一个好主意,并且正常工作,但运行时间很长。有另一种方法吗? @Veeram – fidelroha

相关问题