Collection:
[
{ _id: "Foo", flag1: false, flag2: true, flag3: false },
{ _id: "Bar", flag1: true, flag2: false, flag3: true }
]
My question is, is it possible to call a method inside aggregate query?
aggregate({
$project: {
'_id': 1,
'status' MyService.getStatus($flag1, $flag2, $flag3)
}
});
If it is possible, what is the syntax of it? Result:
[
{ _id: "Foo", status: 'ok' },
{ _id: "Bar", status: 'broken' }
]
In my real world application I have 10 boolean flags per document. If the user gets this documents I would like to convert the flags and give them a meaning (for the user). E.g. consider a document represents a tire.
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
So in summary I would like to say a tire is OK if
flag1, flag2 are true and flag3 is false
and a tire needs to be replaced (BROKEN or REPLACE) when
flag1, flag2 are false and flag3 is true
When a document is returned to the user the flags should be removed. Instead we have the status field that says the tire is either OK or BROKEN.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…