Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Java &引用;命令失败,错误为168(InvalidPipelineOperator):&x27;无法识别的表达式'$匹配';_Java_Mongodb_Spring Boot - Fatal编程技术网

Java &引用;命令失败,错误为168(InvalidPipelineOperator):&x27;无法识别的表达式'$匹配';

Java &引用;命令失败,错误为168(InvalidPipelineOperator):&x27;无法识别的表达式'$匹配';,java,mongodb,spring-boot,Java,Mongodb,Spring Boot,破例 命令失败,错误为168(InvalidPipelineOperator):“无法识别的表达式”$match 我的语法有什么问题 String searchString = new String(sourceSystem); AggregateIterable<Document> aggregateIterable = users.aggregate(Arrays.asList(new Document("$project", new Documen

破例

命令失败,错误为168(InvalidPipelineOperator):“无法识别的表达式”$match

我的语法有什么问题

 String searchString = new String(sourceSystem);
    AggregateIterable<Document> aggregateIterable = users.aggregate(Arrays.asList(new Document("$project", new Document("Email Systems", new Document("$match", new Document("Email Systems.Bob", searchString))))));
    Iterator iterator = aggregateIterable.iterator();
    ArrayList<Document> documents = new ArrayList();
    while (iterator.hasNext()) {
        documents.add((Document) iterator.next());
    }
String searchString=新字符串(sourceSystem);
AggregateIterable AggregateIterable=users.aggregate(Arrays.asList(新文档(“$project”),新文档(“电子邮件系统”,新文档(“$match”,新文档(“Email Systems.Bob”,searchString‘‘‘)’);
迭代器迭代器=AggregateIterator.Iterator();
ArrayList documents=新的ArrayList();
while(iterator.hasNext()){
add((Document)iterator.next());
}

问题是您在
项目中有
匹配

它应该是阶段的
数组列表
。第一个元素应该是
match
project

Document matchDoc = new Document(\*matching condition*/);

Document projectDoc = new Document(/*project doc*/);

传递这两个数组列表。

感谢您的建议。按照建议进行更新。但没有给出正确的结果文档matchDoc=新文档(“Email Systems.Bob”,searchString);Document projectDoc=新文档(“$Email Systems”,“Email Systems”);AggregateIterable AggregateIterable=users.aggregate(Arrays.asList(新文档(“$elemmatch”,matchDoc));和迭代器逻辑。它应该只给出匹配的结果,并且需要与请求参数系统进行比较,但是它同时给出两个结果[Document{{Bob=Document{{System=Bob,result=true}}}},Document{{Wild=Document{{System=Wild,result=true}}],它没有给出匹配的值,而是打印所有的值,比如下面的结果[Document{Bob=Document}{{System=Bob,result=true}},Document{{Wild=Document{{{System=Wild,result=true}}]。我需要与输入请求参数进行比较。如果{System=bob,需要获取bob System的结果值,或者如果它是wild,我应该获取wild的结果。你能帮助我使用java synatxI吗?感觉这是一个单独的问题。请发布一个带有示例数据和试用部分的问题。任何人都可以从这个论坛获得帮助。