Java Mongo db'and'运算符

时间:2019-05-29 18:14:53

标签: mongodb

final Bson filter = and(in(ROUTEID_KEY, routeIds), or(ne(DELETED_KEY, TRUE), exists(DELETED_KEY, FALSE)));
final FindIterable<Document> doc = someCollection.find(filter);

我对mongodb比较陌生。可以给我解释一下这个过滤条件吗?我认为这意味着所有具有给定' routeIds '的文档以及所有具有 DELETED_KEY 字段值为false的文档以及所有文档其中“ DELETED_KEY ”字段不存在。但是,当我只为以下过滤器运行 find()时,出乎意料的是,我得到了更多的值。

 final Bson filter = and(in(ROUTEID_KEY, routeIds));

请说明第一个过滤条件的实际含义。

1 个答案:

答案 0 :(得分:0)

我不熟悉Java驱动程序和确切的api,但是我相对确定,这意味着“选择所有文档,其中a)从此列表中选择ROUTEID_KEY值,b)将其DELETED_KEY设置为TRUE或完全没有DELETED_KEY”。

第二部分(or)减少了返回的数据集,但没有添加。