내 앱은 매일 다양한 크기로 웹 페이지의 스크린 샷을 찍습니다. 페이지 및 화면 크기는 작업에서 설정됩니다. 각 작업은 캡처 할 페이지의 배열과 각 페이지를 캡처 할 화면 크기 목록을 지정합니다.MongoDB 매칭 조건의 첫 번째 항목을 선택하십시오.
앱이 부팅 될 때마다 자동으로 각 활성 작업에 대한 모든 스크린 샷을 다시 가져옵니다. 아직 그날의 스크린 샷을 아직받지 못한 경우를 대비하여. 즉, 동일한 작업, 페이지 및 스크린 세이즈를위한 스크린 샷을 같은 날에 두 번 이상 만들 수 있습니다.
스크린 샷을 볼 때 나는 같은 job
, page
및 screensize
속성을 사용하여 최대 한 번만 반환하려고합니다. 이렇게하려면 매일 실행되는 쿼리를 작성하고 해당 날짜에 둘 이상의 샷이 있는지 확인해야합니다. 이 경우 가장 나중에있는 dateTaken
속성 만 반환하십시오.
여기에 $group
을 사용해야하는지 잘 모르겠습니다. $group
으로 몇 가지 다른 쿼리를 시도했지만 모든 샷을 단일 결과로 결합하거나 찍은 날짜에 상관없이 모든 스크린 샷을 반환했습니다. 한마디로
const ScreenshotSchema = new Schema({
job: {
type: Schema.Types.ObjectId,
ref: 'Job',
required: true
},
dateTaken: {
type: Date,
required: true
},
page: {
type: Schema.Types.ObjectId,
ref: 'Page',
required: true
},
screensize: {
type: Schema.Types.ObjectId,
ref: 'Screensize',
required: true
}
});
, 내가 필요한 것은 : 작업, 페이지, 화면 크기 및 일
를, 그리고 화면 크기, 페이지와 작업에 의한 고유 값을 초래할 않지만, 만 각각의 고유 한 조합에 대해 하나의 결과를 반환하는 반면 고유 한 조합 당 1 일 *을 필요로합니다. – Aron
안녕하세요 아론, 그룹화 키를 추가하여 하루에 그룹화했습니다. –
예, 작동하는 것 같습니다! 이제는 물건을 정리하는 어떤 방법이 있어도'.find ({}) '에서 얻을 수있는 것과 같은 스크린 샷 문서 목록을 얻을 수 있습니다.). 'shot' 객체를 감싸는 문서를 없애기 위해 사후 처리를 추가 할 필요가 없다. – Aron