Javascript Item.filter不是一个函数

Javascript Item.filter不是一个函数,javascript,node.js,Javascript,Node.js,大家好,我正在创建一个路由来获取登录用户创建的项目,但是当我使用.filter函数时,我得到一个错误。我不知道为什么会出现这个错误。在做同样的事情之前,我已经做过其他的应用程序,但从未出错 Item.filter不是一个函数 “我的项目”路线 const requireAuth = require("../middleware/requireAuth"); const express = require("express"); const mongoose = require("mongoose

大家好,我正在创建一个路由来获取登录用户创建的项目,但是当我使用.filter函数时,我得到一个错误。我不知道为什么会出现这个错误。在做同样的事情之前,我已经做过其他的应用程序,但从未出错

Item.filter不是一个函数

“我的项目”路线

const requireAuth = require("../middleware/requireAuth");
const express = require("express");
const mongoose = require("mongoose");
const Item = mongoose.model("Item");

router.get("/my-items", requireAuth, async (req, res) => {
  try {
    const items = Item.filter((item) => item.userId === req.user.userId);
    res.send(items);
  } catch (err) {
    console.log(err);
  }
});
项目架构

const mongoose = require("mongoose");

const itemSchema = new mongoose.Schema({
  userId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "User",
  },
  phone: {
    type: mongoose.Schema.Types.String,
    ref: "User",
  },
  email: {
    type: mongoose.Schema.Types.String,
    ref: "User",
  },
  seller: {
    type: mongoose.Schema.Types.String,
    ref: "User",
  },
  title: {
    type: String,
    required: true,
  },
  category: {
    type: String,
    required: true,
  },
  detail: {
    type: String,
    requiredL: true,
  },
  condition: {
    type: String,
    required: true,
  },
  price: {
    type: Number,
    required: true,
  },
});

mongoose.model("Item", itemSchema);

Item
是一个模型,但不是数据库中的文档,您需要先进行查询才能获取这些项

router.get("/my-items", requireAuth, async (req, res) => {
  try {
    const query = Item.find()
    query.exec().then(items => {
      const filteredItems = items.filter((item) => item.userId === req.user.userId);
      res.send(items);
    })
  } catch (err) {
    console.log(err);
  }
});

Item
是一个模型,但不是数据库中的文档,您需要先进行查询才能获取这些项

router.get("/my-items", requireAuth, async (req, res) => {
  try {
    const query = Item.find()
    query.exec().then(items => {
      const filteredItems = items.filter((item) => item.userId === req.user.userId);
      res.send(items);
    })
  } catch (err) {
    console.log(err);
  }
});
它应该从数据库返回您想要的确切项目,如果需要,您可以使用更多查询


它应该从db返回您想要的确切项目,如果需要,您可以使用更多查询。

它返回一个空数组,可能您在参数中需要一个空对象,如
Item.find({})
。它返回一个空数组,可能您在参数中需要一个空对象,如
Item.find({})
。太棒了,谢谢你不知道我为什么没有想到它。谢谢你不知道我为什么没有想到它