Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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/MongoDB-如何解决错误“;异常:管道元素0不是对象;_Java_Mongodb_Aggregation Framework - Fatal编程技术网

Java/MongoDB-如何解决错误“;异常:管道元素0不是对象;

Java/MongoDB-如何解决错误“;异常:管道元素0不是对象;,java,mongodb,aggregation-framework,Java,Mongodb,Aggregation Framework,我正在使用aggregate()方法,并在游标中查找我在下面代码中使用的结果 dbObjArray = new BasicDBObject[2] dbObjArray[0]= cruxLevel dbObjArray[1] = project // dbObjArray[2] = out List<DBObject>

我正在使用
aggregate()
方法,并在游标中查找我在下面代码中使用的结果

                 dbObjArray = new BasicDBObject[2]
                 dbObjArray[0]= cruxLevel
                 dbObjArray[1] = project
                // dbObjArray[2] = out
                 List<DBObject> pipeline = Arrays.asList(dbObjArray)
                 if (!datasetObject?.isFlat && jsonFor != 'collection-grid') {
                     println '-------------------------------- inside if block bbb--------------------------------------'
                     output= dataSetCollection.aggregate(pipeline)
                 }else{

                     /*DBObject out = new BasicDBObject('$out':"datasetTemp");
                     def db = getDB()*/

                     println '-------------------------------- inside else block--------------------------------------'

                      AggregationOptions aggregationOptions = AggregationOptions.builder()
                     .batchSize(100)
                     .outputMode(AggregationOptions.OutputMode.CURSOR)
                     .allowDiskUse(true)
                     .build();

                     output = dataSetCollection.aggregate(project)
                 }
dbObjArray=新的基本对象[2]
dbObjArray[0]=cruxLevel
dbObjArray[1]=项目
//dbObjArray[2]=输出
List pipeline=Arrays.asList(dbObjArray)
如果(!datasetObject?.isFlat&&jsonFor!=“收集网格”){
println'-------------------------------------如果块bbb在内部----------------------------
输出=dataSetCollection.aggregate(管道)
}否则{
/*DBObject out=新的BasicDBObject(“$out”:“datasetEMP”);
def db=getDB()*/
println'-------------------------------------在else块内-------------------------------------------
AggregationOptions AggregationOptions=AggregationOptions.builder()
.批量大小(100)
.outputMode(聚合选项.outputMode.CURSOR)
.allowDiskUse(真)
.build();
输出=dataSetCollection.aggregate(项目)
}
我正在犯错误

com.mongodb.CommandFailureException:{“serverUsed”: “127.0.0.1:15847”,“errmsg”:“异常:管道元素0不可用。” 对象,“代码”:15942,“确定”:0.0}

我哪里出错了,请帮帮我

谢谢。

def dbObjArray=新的基本对象[1]
def dbObjArray = new BasicDBObject[1]
dbObjArray[0]= project
List<DBObject> flatPipeline = Arrays.asList(dbObjArray)

AggregationOptions aggregationOptions = AggregationOptions.builder()
                                        .batchSize(100)
                                        .outputMode(AggregationOptions.OutputMode.CURSOR)
                                        .allowDiskUse(true)
                                        .build();
def cursor = dataSetCollection.aggregate(flatPipeline,aggregationOptions)
dbObjArray[0]=项目 List flatpipline=Arrays.asList(dbObjArray) AggregationOptions AggregationOptions=AggregationOptions.builder() .批量大小(100) .outputMode(聚合选项.outputMode.CURSOR) .allowDiskUse(真) .build(); def cursor=dataSetCollection.aggregate(扁平管道、聚合选项)
您的问题缺少一些有助于调试的关键元素,例如变量
cruxLevel
project
的值是多少?管道的json等效表示形式是什么?@chridam告诉我具体需要什么帮助。cruxlevel和project有非常复杂的事情。变量
cruxlevel
project
的值是多少?@chridam请参见编辑请阅读。