[
{ _id: "Foo", flag1: false, flag2: true, flag3: false },
{ _id: "Bar", flag1: true, flag2: false, flag3: true }
]
내 질문이있다가 집계 쿼리 내부의 메소드를 호출 할 수 있습니다?
aggregate({
$project: {
'_id': 1,
'status' MyService.getStatus($flag1, $flag2, $flag3)
}
});
가능한 경우 구문은 무엇입니까? 결과 : 내 실제 응용 프로그램에서
[
{ _id: "Foo", status: 'ok' },
{ _id: "Bar", status: 'broken' }
]
나는 문서 당 10 개 부울 플래그가 있습니다. 사용자가이 문서를 얻는다면 나는 플래그를 변환하고 (사용자에게) 의미를 부여하고 싶습니다. 예 : 문서가 타이어를 대표한다고 생각해보십시오.
flag1 = true means tire have good pressure, false means low pressure
flag2 = true means depth of tire profile is good, false means little profile
and so on
그래서 요약 나는 경우
flag1, flag2 are false and flag3 is true
때 문서
flag1, flag2 are true and flag3 is false
및 타이어를 교체해야 할 경우 타이어가 OK라고 (BROKEN 또는 교체)하고 싶은 플래그가 제거되어야하는 사용자에게 리턴됩니다. 대신 우리는 타이어가 OK 또는 BROKEN 중 하나라는 상태 필드를 가지고 있습니다.
아니요 어떻게 작동합니까? BSON 문서 만. 사람들은 쉘에서 이와 같은 것을 발표하고 처음에 평가한다는 것을 깨닫지 못해서 혼란스러워합니다. 당신이 실제로 여기에서 원하는 것은 당신이 기능이 필요하다고 생각하는 이유입니다. 가능성이 결정하는 것은 ** 해당 필드 중 하나 ** 사실입니까? –
@NeilLunn이 함수는 부울 식으로 플래그를 확인하고 문자열을 반환합니다. 나는이 부울 플래그 중 약 10 개를 내 문서에 가지고 있는데, 나는이 모든 것을 하나로 모으고 싶다. "아마도 그 분야 중 하나가 무엇인지를 판단하는 것이 맞습니까?" 어떻게 생겼지? –
아직 무엇을 하려는지 확실하지 않습니다. 왜 첫 번째 문서는 "ok"이고 두 번째 문서는 "broken"입니까?자신의 질문을 편집하는 것이 더 낫다는 것을 설명하는 것이 더 좋으며, 그렇게했을 때 주석으로 알릴 수 있습니다. 분명히 우리는 집계 프레임 워크가 어떻게 그것을 수행하는지 "당신의 논리를 구현"할 필요가 있습니다. 그러나 질문은 "반환 된 값의 논리는 무엇입니까?" –