2014-12-15 5 views
1

У меня есть модель для торговли, которая выглядит следующим образом:Mongoose скрыть/показать поле на основе другого значения поля

{ 
    anonymous : { type: Boolean, required: true, default: false }, 
    name : { type: String, required: true } 
} 

Я всегда хранить имя или не выбрал пользователь, чтобы быть анонимным. Но я хотел бы исключить поле имени в find(), когда для анонимного установлено значение true. Несмотря на то, что программе необходимо знать имя анонимного пользователя, ни один другой пользователь не сможет ее увидеть. Есть ли способ сделать это с помощью запроса манго? Я посмотрел на оператор $ cond, но, похоже, это не применимо к этой ситуации. Я хотел бы сказать что-то вроде «если анонимно верно, не включайте имя».

ответ

1

Вот как это выглядит на командной строке mongo. Самое простое решение, которое я мог найти, это использовать $cond with the aggregate method:

db.trades.aggregate([ 
    { $project: { 
    anonymous: 1, 
    name: { $cond: [ "$anonymous", "", "$name" ] } 
    }} 
]) 
+0

Отлично, спасибо! – ritmatter

Смежные вопросы