我无法从mongoose中获取所有数据。当我尝试获取数据时,它创建了一个新的集合名称(登录),名称为空,但登录集合已经存在。
我不明白我做错了什么
Index.js文件
const express = require("express");
const app = express();
const mongoose = require("mongoose");
mongoose
.connect("mongodb://0.0.0.0:27017/signin")
.then(() => console.log("MongoDB Connected"))
.catch((err) => console.log(err));
const User = require("./models/signin");
app.use("/", (req, res) => {
User.find({}, (err, data) => {
if (err) throw new err();
return res.json(data);
});
});
app.listen(5500, () => console.log("Port Started on 5500"));
签名
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const loginSign = new Schema({
email: { type: String, required: true },
password: { type: String, required: true },
date: { type: Date, default: Date.now },
});
module.exports = Users = mongoose.model("signin", loginSign);
1条答案
按热度按时间yb3bgrhw1#
Mongoose会自动从您的模型名称“复数化”您的集合名称。
所以
mongoose.model("signin", loginSign)
正在创建一个名为"signins"
的集合。从文档中:https://mongoosejs.com/docs/models.html#compiling
第一个参数是模型集合的单数名称,Mongoose会自动查找模型名称的小写复数形式。
提供第三个参数将使用您指定的集合名称,而不是mongoose创建的集合名称。因此,在您的情况下,您可以:
mongoose.model("signin", loginSign, "signin");
也就是说,使用复数集合名称是标准做法,也是鼓励的做法。