#mongodb #mongoose
Вопрос:
У меня есть объект внутри коллекции под названием «childLimit». Схема: user: { name: {type: String}, childLimit: {dailyLimit: {type: Number} }
Теперь, если я не вставил никакой информации в этот объект (childLimit) при создании пользователя, поэтому его не должно быть там, как работает монго, это нормально. но когда я это утешаю, он возвращает {} пустой объект, что нормально. Но когда я console.log(Object.values(childLimit)), он консольный [ истинный, неопределенный, неопределенный, неопределенный], что странно???? Объект.ключи(ограничение на детей).длина возвращает 2, но она должна быть 0??
Теперь как я могу проверить, пуст ли объект?? ИЛИ если объект существует??
Ответ №1:
Кажется, это из-за Мангуста, я прав?
Просто зарегистрируйте ключи, которые вы считаете, и вы увидите что-то вроде следующего: Мангуст-внутренние свойства, но не ключи вашего документа:
console.log(Object.keys(doc));
// [ '$__', 'isNew', 'errors', '$locals', '$op', '_doc' ]
На самом деле вам нужны свойства документа. Вы можете сделать это следующим образом:
console.log(Object.keys(doc.toObject()));
// [ 'foo', 'bar', 'baz' ]
Или альтернативно (хотя это, похоже, не публичный API!):
console.log(Object.keys(doc._doc));
// [ 'foo', 'bar', 'baz' ]
Обратите внимание, что иногда и то, и другое может возвращать разные результаты.