두 개의 콜렉션을 조회하고 그 결과를 결합하여 다른 콜렉션을 작성하는 데 문제점이 있습니다.pentaho에서 쿼리 조건이있는 두 개의 mongo 콜렉션을 합치십시오.
Collection1 :
{
"ResourceCost" : 0.0032258065,
"ResourceId" : "i-08c35f123eea43f30",
"Unit" : "USD",
"billdate" : ISODate("2017-12-01T16:30:00.000Z")
}
컬렉션 2 :
{
"resource_id" : "i-08c35f123eea43f30",
"Timestamp" : ISODate("2017-12-01T18:30:00.000Z"),
"Avg" : 0.0,
"total" : 0.0,
"sample_cnt" : 1440.0,
"max" : 0.0,
"min" : 0.0
}
나는 컬렉션이 데이터를 수집 한을 업데이트해야합니다. 그래서 마침내 나는 다음과 같이 콜렉션 1 데이터를 기대하고 있습니다.
필드와 자원 ID 모두에 대해 동일한 시간을 확인하십시오.
db.col1.aggregate([
{
$lookup:{
from:"col2",
localField:"ResourceId",
foreignField:"resource_id",
as:"result"
}
},{
$unwind:"$result"
},{
$project:{
"ResourceCost":"$ResourceCost",
"ResourceId":"$ResourceId",
"Unit":"$Unit",
"billdate":"$billdate",
"_id":0,
"avg":"$result.Avg",
"total":"$result.total",
"sample_cnt":"$result.sample_cnt",
"max":"$result.max",
"min":"$result.min"
}
}
])
에 대한 $loopup, $unwind 및 참조 $project 읽기,
{
"ResourceCost" : 0.0032258065,
"ResourceId" : "i-08c35f123eea43f30",
"Unit" : "USD",
"billdate" : ISODate("2017-12-01T16:30:00.000Z")
"Avg" : 0.0,
"total" : 0.0,
"sample_cnt" : 1440.0,
"max" : 0.0,
"min" : 0.0
}