我在mongodb中找到了两种在语句中执行等效SQL的方法。 一种方式是:
BasicDBObject inQuery = new BasicDBObject();
List<Integer> list = new ArrayList<Integer>();
list.add(2);
list.add(4);
list.add(5);
inQuery.put("employeeId", new BasicDBObject("$in", list));
DBCursor cursor = collection.find(inQuery);
另一个,带过滤器,就是这样的:
FindIterable<Document> iterable = db.getCollection("coll_name")
.find(in("field_name", values))
我的问题是:
答案 0 :(得分:1)
在性能方面和语义上没有区别。
两者都会导致将相同的命令发送到数据库。 Filters.in(field, values)
方法只是new BasicDBObject(field, new BasicDBObject("$in", values))
的替代语法。
从代码风格的角度来看,您认为哪一个更适合您的个人偏好。