내가 원한다고 생각하고 싶습니다. 의견을 읽은 후에 업데이트하십시오. 다양한 방법이 있습니다.
코멘트에서 언급 한 블로그에서 배열 크기가 60 (매초) 인 단일 문서를 작성하면 문서를 다음과 같이 업데이트 할 수 있습니다.
db.metrics.update(
{
timestamp_minute: ISODate("2013-10-10T23:06:00.000Z"),
type: ”memory_used”
},
{$set: {“values.59”: 2000000 } }
)
여기서 .59는 업데이트하려는 초입니다.
if (second==0){
//insert the "new" timestamped object into the collection
}
else{
var update = Builders<Metric>.Update.Set(e => e.values[second], this.getRandomMetric());
}
이 당신에게 문서를 제공해야합니다 : upsert은 당신이 뭔가를 할 수 귀하가 언급 한 바와 같이 C#을 사용하는 경우 첫 번째 업데이트는 문서
를 생성 true로 설정되어있을 때, 그래서 그냥 업데이트마다 두 번째 전화 값의 배열은 59 개입니다.
하지만 실제로보고 싶지 않은 이유는 단지 하나의 문서에 저장하는 것이 그 이유일까요?
{
timestamp_minute: ISODate("2013-10-10T23:06:01.000Z"),
type: "memory_used",
value: 999999
},
{
timestamp_minute: ISODate("2013-10-10T23:06:37.000Z"),
type: "memory_used",
value: 1000000
},
timestamp_minute: ISODate("2013-10-10T23:06:59.000Z"),
type: "memory_used",
value: 2000000
}
제한된 기록에 관심이 있으시면 capped collection에 넣으십시오. 평균을 그룹화하여 다른 콜렉션에 넣을 수 있습니다. 이를 위해 $out operator과 함께 집계 프레임 워크를 사용할 수 있습니다. 예를 들어 시간당 유형별 가치를 그룹화하거나 필요에 맞는 모든 것을 그룹화하십시오.
다소 불분명합니다. "timestamp"및 값에 datetimestamp가 표시됩니다. 값은 (분당) 증분 값은 단지 값의 배열입니까? – HoefMeistert
값은 15 분마다 증가합니다. 즉, 내가 얻고 자했던 구조입니다. –