функция mongoose find() возвращает не весь объект, пропускает пустое поле

#mongoose

#mongoose

Вопрос:

Я использую mongoose find() для поиска определенного атрибута, который просматривает различные атрибуты, например, это

  exports.isPhoneAlreadyExists = (req, res) => {

  var searchedPhone = req.params.phone;

 var searchOnPhoneWithOr = [{ 'phone1': searchedPhone }, { 'phone2': searchedPhone }, { 'phone3': searchedPhone }, { 'phone4': searchedPhone }, { 'phone5': searchedPhone }];
  contact.find({ $or: searchOnPhoneWithOr }, {}, function (err, resp) {
    if (err) {

        res.send(err);
    }

    res.json(resp);
});
};
  

она не возвращает мне объект целиком, она возвращает только те атрибуты, которые не являются пустыми, я хочу получить весь объект вместе с пустыми атрибутами.

Ответ №1:

MongoDB по умолчанию не сохраняет пустые объекты в БД. Чтобы избежать такого поведения, вы можете установить флаг «минимизировать» в опции сбора на «false».

Я не совсем уверен, применимо ли это также к «примитивным» значениям, таким как строки или числа, но если вы работаете только с объектами, у вас все должно быть в порядке.

Проверьте это для получения дополнительной информации: https://mongoosejs.com/docs/guide.html#minimize