猫鼬的查找方法不返回数组

时间:2019-11-02 12:41:51

标签: arrays node.js express object mongoose

这确实是很奇怪的情况,但是我的Model.find()方法不返回数组,而是返回对象,而不是对象数组,而只是对象。我记录了结果是否为Array类型并且显示为false,之前我曾遇到过此类问题,而Aggregation方法可以解决问题,但现在不是。 这是我的代码:

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 :(得分:0)

这是因为数组的类型是对象,而不是数组

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