在使用mongodb中 遇到了两个问题,
java连接mongodb进行聚合查询时,偶尔出现了state should be open 的异常,mongodb既没有关闭 也没有进行过其他操作。大神们给解答一下呗,困惑持续了很久
第二个问题是关于mongodb聚合的。在mongodb中的数据是这样的:
{
"_id" : ObjectId("561dd67f8d84cb0b20c32fb1"),
"QueryKeyID" : "371526100888200904170101",
"QueryID" : 1108604,
"CandData" : [{
"FingerIndex" : 5,
"Score" : 717,
"CandCardID" : "3715269992009040061",
"Rank" : 1
}]
}
我执行的 聚合语句是这样的
{ $project:{QueryKeyID:1,QueryID:1,CandData:1} },
{$match :{"QueryID":{$in:[23123,12313,1231231234,23453453,2342,464,5767567]}}}
{$match:{"CandData.Score":{$gte:30,$ite:50}}},
{ $unwind:"$CandData" },
{
{
$group:{
_id:{CandData_CandCardID:"$CandData.CandCardID",QueryKeyID:"$QueryKeyID",CandData_Rank:"$CandData.Rank"},
QueryKeyID:{$first:"$QueryKeyID"},
TPCardID :{$first:"$CandData.CandCardID"},
QueryID :{$first:"$QueryID"},
Score :{$first:"$CandData.Score"},
Rank :{$first:"$CandData.Rank"}
}
},
{
$group:{
_id:{TPCardID:"$TPCardID"},
TPCardID:{$first:"$TPCardID"},
Count:{$sum:1},
CandData: { $push: { QueryKeyID:"$QueryKeyID",QueryID:"$QueryID",Score:"$Score",Rank:"$Rank"}}
}
}
},
{$match:{"Count":{$gt:1}}}
{ $sort : { Count : -1, posts: 1 } }
现在想加一个过滤 CandData中Score属性
我zai unwind之后之前加的match 不起作用 求指导,,一直搞不明白
java连接mongodb进行聚合查询时,偶尔出现了state should be open 的异常,mongodb既没有关闭 也没有进行过其他操作。大神们给解答一下呗,困惑持续了很久
第二个问题是关于mongodb聚合的。在mongodb中的数据是这样的:
{
"_id" : ObjectId("561dd67f8d84cb0b20c32fb1"),
"QueryKeyID" : "371526100888200904170101",
"QueryID" : 1108604,
"CandData" : [{
"FingerIndex" : 5,
"Score" : 717,
"CandCardID" : "3715269992009040061",
"Rank" : 1
}]
}
我执行的 聚合语句是这样的
{ $project:{QueryKeyID:1,QueryID:1,CandData:1} },
{$match :{"QueryID":{$in:[23123,12313,1231231234,23453453,2342,464,5767567]}}}
{$match:{"CandData.Score":{$gte:30,$ite:50}}},
{ $unwind:"$CandData" },
{
{
$group:{
_id:{CandData_CandCardID:"$CandData.CandCardID",QueryKeyID:"$QueryKeyID",CandData_Rank:"$CandData.Rank"},
QueryKeyID:{$first:"$QueryKeyID"},
TPCardID :{$first:"$CandData.CandCardID"},
QueryID :{$first:"$QueryID"},
Score :{$first:"$CandData.Score"},
Rank :{$first:"$CandData.Rank"}
}
},
{
$group:{
_id:{TPCardID:"$TPCardID"},
TPCardID:{$first:"$TPCardID"},
Count:{$sum:1},
CandData: { $push: { QueryKeyID:"$QueryKeyID",QueryID:"$QueryID",Score:"$Score",Rank:"$Rank"}}
}
}
},
{$match:{"Count":{$gt:1}}}
{ $sort : { Count : -1, posts: 1 } }
现在想加一个过滤 CandData中Score属性
我zai unwind之后之前加的match 不起作用 求指导,,一直搞不明白
