2015-01-26 6 views
3

mongo db aggergtion 파이프 라인에서 필드를 제외하고 싶습니다. 문서를 읽은 후에 필드를 유지할지 1 또는 0으로 지정해야한다고 생각했습니다 (cf . http://docs.mongodb.org/manual/reference/operator/aggregation/project/는)

그래서 나는 다음 (사용 Node.js를 몽구스를하려고했으나 구문) 일반 몽고로 아주 동일합니다
aggregate.match({ date: { $gte : today } }); 
aggregate.sort('-date'); 
aggregate.group({ 
    _id: '$name', 
    date: { $first: '$date' }, 
    user: { $first: '$user' }, 
    app: { $first: '$app' } 
}); 
aggregate.project({ 
    _id: 1, 
    last: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$date', 0 ] }, 
    user: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$user', 0 ] }, 
    app: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$app', 0 ] } 
}); 

그러나

가 그 일을, 나는이 같은 문서로 끝 :

[ 
    { 
    _id: 'devices', 
    user: 0, 
    app: 0, 
    last: 0 
    }, 
    { 
    _id: 'undo', 
    user: 'test', 
    app: 'truc', 
    last: Mon Jan 26 2015 16:21:53 GMT+0100 (CET) 
    } 
] 

_idundo 인 경우에만 user, appdate을 표시하고 싶습니다.

어떻게 구현합니까?

감사합니다.

답변

2

아직 불가능하다고 생각합니다.

The top-level _id field is the only field currently supported for exclusion 
: 비 _id 필드를 제외하려고 쉘에서

오류 메시지