简体   繁体   English

Mongoose 在 NodeJS 中总是返回一个空数组

[英]Mongoose always returns an empty array in NodeJS

I am trying to pull all the products of of the products collection on MongoDB Atlas.我正在尝试在 MongoDB Atlas 上提取products集合的所有products All I get in return are empty arrays.我得到的只是空数组。

I have a proper connection to the database.我有一个正确的数据库连接。

I am unsure about the model and how I am using Mongoose.我不确定该模型以及我如何使用 Mongoose。

Here is my connection... connectDb.js这是我的连接... connectDb.js

import mongoose from "mongoose";
const connection = {};

async function connectDb() {
  if (connection.isConnected) {
    console.log("Connection in progress");
    return;
  }
  const db = await mongoose.connect(process.env.MONGO_SRV, {
    useCreateIndex: true,
    useFindAndModify: false,
    useNewUrlParser: true,
    useUnifiedTopology: true,
  });
  console.log("DB Connected");
  connection.isConnected = db.connections[0].readyState;
}

export default connectDb;

Here is my schema... ./models/Product.js这是我的架构... ./models/Product.js

import mongoose from "mongoose";
import shortid from "shortid";

const { String, Number } = mongoose.Schema.Types;

const ProductSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  price: {
    type: Number,
    required: true,
  },
  description: {
    type: String,
    required: true,
  },
  sku: {
    type: String,
    unique: true,
    required: true,
    default: shortid.generate(),
  },
  mediaUrl: {
    type: String,
    required: true,
  },
});

// Check for an existing `models.Product` ... then run the product schema
export default mongoose.models.Product ||
  mongoose.model("products", ProductSchema);

Here is my query ... ./api/products.js这是我的查询... ./api/products.js

import Product from "../../models/Product";
import connectDb from "../../utils/connectDb";

connectDb();

export default async (req, res) => {
  const products = await Product.find({});
  console.log(`products are ... ${products}`);
  res.status(200).json(products);
};

Here is my database这是我的数据库

藏品名称

数据是什么样的

Here is the results in the console...这是控制台中的结果......

在此处输入图片说明

According to Mongoose Documentation if db.connections[0].readyState} returns 1... it means connected Connection Doc根据猫鼬文档,如果db.connections[0].readyState}返回 1...这意味着已连接的连接文档

在此处输入图片说明

Check your env var MONGO_SRV .检查您的env VAR MONGO_SRV Make sure that your connection URL is with the relevant DB.确保您的连接 URL 与相关数据库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM