MongoDB 그룹 쿼리가 있습니다. 나는 그것의 대부분을 무시하지만 'reduce'함수의 'if'조건 비트가 나를 혼란스럽게합니다. 나는 그 목적이 무엇인지 잘 모릅니다.이 MongoDB 쿼리 디코드
db.users.group({
"initial": {
"countstar": 0
},
"reduce": function(obj, prev) {
if (true != null) if (true instanceof Array) prev.countstar += true.length;
else prev.countstar++;
},
"cond": {
"location": null
}
});
'초기'매개 변수의 역할을 알고 있습니다. 나는 또한 'cond'매개 변수가 무엇을하는지 알고 있습니다. 그러나 'reduce'매개 변수의 전체 비트가 혼란 스럽습니다.
또한 동등한 SQL은 무엇입니까?
db.users.group({
"initial": { "countstar": 0 },
"reduce": function(obj, prev) {
if (true != null) {
if (true instanceof Array)
prev.countstar += true.length;
else
prev.countstar++;
}
},
"cond": { "location": null }
});
뭔가이와 확실히 잘못 true
자바 스크립트에서 부울 값이기 때문에 첫 번째 조건은 항상 보유하고 있으므로, 두 번째 조건은 유지 결코 및 true.length
:
나는 어딘가에 true라는 변수가 있고 그 코드를 처리하는 방법에 대한 코드가 있는지를 추측합니다. – alernerdev
@alernerdev 좋아요, 두 조건이 연속 일 경우 어떻게됩니까? 그들은 중첩되어 있습니까? –
예, 중첩되었습니다. 그 핵심은 다음과 같습니다. null이 아닌지 확인하십시오. 그렇지 않은 경우 배열인지 확인하십시오. 배열 인 경우 배열의 길이를 더하십시오. 배열이 아닌 경우 하나씩 증가합니다. 들여 쓰기를 사용하여 여러 줄로 분리하고 좋은 교정을 위해 중괄호를 넣어 읽기 쉽게 만들 수 있습니다. 이 코드를 가져 와서 "true"의 다른 값을 설정하고 어떤 일이 발생하는지 관찰 할 수 있습니다. – alernerdev