Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongo java api忽略嵌套或/和运算符_Java_Mongodb - Fatal编程技术网

Mongo java api忽略嵌套或/和运算符

Mongo java api忽略嵌套或/和运算符,java,mongodb,Java,Mongodb,我想按姓名、文件或出生日期搜索此人 看起来很简单,但我的查询没有返回任何内容。 程序运行时没有错误,但找到0条记录。 如果我删除或只按名称搜索,它会起作用 List<Bson> fullname = new ArrayList<>(); List<Bson> bd = new ArrayList<>(); bd.add(eq("by", 1999)); bd.add(eq("bm", 9)); bd.add(eq("bd", 18)); ful

我想按姓名、文件或出生日期搜索此人

看起来很简单,但我的查询没有返回任何内容。 程序运行时没有错误,但找到0条记录。 如果我删除或只按名称搜索,它会起作用

List<Bson> fullname = new ArrayList<>();
List<Bson> bd = new ArrayList<>();

bd.add(eq("by", 1999));
bd.add(eq("bm", 9));
bd.add(eq("bd", 18));

fullname.add(eq("l", ln));
fullname.add(eq("f", fn));
fullname.add(eq("p", pn));

Bson filter = and(
                    and(fullname),
                    or(
                            eq(and(bd)),
                            eq("document", document)
                    )
            );

也许有更好的语法用于此类查询

据我所知,变量命名应该是:

 Bson filter = and(
                and(fullname),
                or(
                        and(bd),                  // no "eq" here
                        eq("document", document)
                )
        );