Edit:
После попытки обоих подходов я обнаружил, что исключающий всегда подход не работает для меня по какой-то причине с использованием паспортно-локальной стратегии, не знаю почему.
Итак, это то, что я в конечном итоге использовал:
Blogs.findOne({_id: id})
.populate("user", "-password -someOtherField -AnotherField")
.populate("comments.items.user")
.exec(function(error, result) {
if(error) handleError(error);
callback(error, result);
});
Нет ничего плохого в том, что исключение всегда подходит, он почему-то не работал с паспортом, мои тесты сказали мне, что в факт, что пароль был исключен / включен, когда я захотел. Единственная проблема с включением всегда заключается в том, что мне в основном нужно пройти каждый вызов, который я делаю в базе данных, и исключить пароль, который является большой работой.
После нескольких отличных ответов Я обнаружил, что есть два способа сделать это: «всегда включать и исключать иногда» и «всегда исключать и включать иногда»?
Пример обоих:
Включить всегда, но иногда исключаю пример:
Users.find().select("-password")
или
Users.find().exclude("password")
Экслюд всегда всегда, но иногда включает пример:
Users.find().select("+password")
, но вы должны определить в схема:
password: { type: String, select: false }
Это на самом деле более распространенный способ сделать это. Просто соберите данные платежа и создайте токен (или источник), используя ваш интерфейс. Затем прикрепите этот токен (или источник) в качестве метода оплаты к записи клиента, используя Метод создания карты API .