Я пытаюсь найти существующего пользователя с помощью мангуста Мой запрос
UserAccount.find(variables, function (error, success) {
if (error) {
response.send({status: false});
} else {
console.info(success);
}
});
Если пользователь существует, он возвращает следующий массив.
[ model {
'$__':
InternalCache {
strictMode: true,
selected: [Object],
shardval: undefined,
saveError: undefined,
validationError: undefined,
adhocPaths: undefined,
removing: undefined,
inserting: undefined,
saving: undefined,
version: undefined,
getters: {},
_id: 5c98e64f2106e94022532c9f,
populate: undefined,
populated: undefined,
wasPopulated: false,
scope: undefined,
activePaths: [StateMachine],
pathsToScopes: {},
session: null,
ownerDocument: undefined,
fullPath: undefined,
emitter: [EventEmitter],
'$options': [Object] },
isNew: false,
errors: undefined,
_doc:
{ isActive: true,
_id: 5c98e64f2106e94022532c9f,
userName: '[email protected]',
password:
'$2a$05$vpowA76cB3T/4eHGbQPqd.F/iIebX7SXKPZA2k1wcmlSIDks0q852',
userCategory: 'buyer',
createdDate: 2019-03-20T14:31:43.250Z,
updatedDate: 2019-03-20T14:31:43.250Z,
__v: 0 },
'$init': true } ]
Я не знаю, что вызывает эту проблему? До вчерашнего дня он возвращал только пользовательские данные, но мне это так странно. Как решить эту проблему? Может ли кто-нибудь помочь мне исправить это, пожалуйста? Спасибо.





Дополнительные свойства, которые вы получили изначально, связаны с тем, что results представляет собой набор экземпляров модели, которые поставляются с дополнительными свойствами и методами, недоступными для обычных объектов.
вы можете передать {lean: true} в качестве опции и получить простой объект без всех этих дополнительных свойств и методов.
UserAccount.find(variables, {lean: true}, function (error, success) {
if (error) {
response.send({status: false});
} else {
console.info(success);
}
});
Я также столкнулся с той же проблемой, проблема в том, что если вы используете последнюю версию mongo со старым mongoose, это можно решить, установив более новую версию mongoose и запустив mongoose find(), это решит вашу проблему.
Да, я переустановил свою ОС и все полностью. Обновление мангуста решило мою проблему.
Вы просто избавляетесь от этого, используя lean() в конце запроса.
const courses = await Course
.find({ isPublished: true })
.or([
{ price: { $gte: 15 } },
{ name: /.*by.*/i }
]).lean(); // use lean to remove unnecessary values from output
Я тоже пробовал это, ссылаясь на stackoverflow.com/questions/28442920/…, но это не сработало.