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请参见编辑请阅读。