Метод поиска Mongoose не возвращает массив - PullRequest
0 голосов
/ 02 ноября 2019

Это действительно странный случай, но мой метод Model.find() не возвращает массив, вместо этого он возвращает объекты, а не массив объектов, только объекты. Я зарегистрировал, если результат был типом Массива, и это показало ложное, у меня была такая проблема прежде, и метод Агрегации добился цели, но это не сейчас. это мой код:

let docs = await Docs.find({public: true}).limit(5);
const docsToSend = docs.filter(doc => new Date(doc.expires) < new Date().getTime());
console.log(typeof docsToSend === Array)
return res.status(200).send({
    docs: docsToSend
})

однако я регистрирую, если документы имеют тип массива на стороне клиента, и он также возвращает false. Я действительно запутался. В чем проблема?

1 Ответ

0 голосов
/ 02 ноября 2019

Это потому, что тип массива является объектом, а не массивом

let arr = [];

let arr2 = [{ a: 1 }, { b: 2 }];

console.log(typeof arr);   //object

console.log(typeof arr2);  //object

Попробуйте:

console.log(typeof docsToSend === "object");

let docs = [{field1: true, field2: false}, {field1: false, field2: false}];

const docsToSend = docs.filter((doc)=> doc.field1);

console.log(typeof docsToSend);  //object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...