将 mongoDB 集合导入 Express 模型

Posted

技术标签:

【中文标题】将 mongoDB 集合导入 Express 模型【英文标题】:Importing mongoDB collection to Express Model 【发布时间】:2015-04-12 17:30:01 【问题描述】:

我目前有一个名为 Consumer_Complaints 的集合,它位于一个名为 consumer_Complaints 的 mongoDB 数据库中(抱歉让您感到困惑)。

我可以通过 mongo shell 访问 Consumer_Complaints 集合,但我无法在我的应用程序中访问它。我目前正在使用快递。

这是我的代码(更新):

var mongoose = require("mongoose");

//open connection to consumer_Complaints database

mongoose.connect('mongodb://localhost/consumer_Complaints')

//send error if connection fails
mongoose.connection.on('error', console.error.bind(console, 'connection error:' ));

var Schema = mongoose.Schema;

var complaintSchema = new Schema(
    complaint_ID: String,
    product: String,
    sub_Product: String,
    issue: String,
    sub_Issue: String,
    state: String,
    zip_Code: String,
    submitted_Via: String,
    date_Received: String,
    date_sent_to_Company: String,
    company: String,
    company_Response: String,
    timely_Response: String,
    consumer_Disputed: String,
);

complaintSchema.set('collection', 'Consumer_Complaints');

var model = mongoose.model("Model", complaintSchema)

model.find(, function (err, results) 
    res.json(results);
    console.log(results);//Your Json result
);

Previous Answer- Found Here 这似乎是我想要的,但使用的语法与我在 mongoose 文档中看到的不同,当我尝试复制它时,出现以下错误。

“TypeError: 无法调用未定义的方法‘find’”

任何帮助澄清链接帖子中的最佳答案,或找出我做错了什么将不胜感激!

【问题讨论】:

【参考方案1】:

//定义的模式 var mongoose = require('mongoose');

var Schema=mongoose.Schema;

var complaintSchema = new Schema(
    complaint_ID: String,
    product: String,
    sub_Product: String,
    issue: String,
    sub_Issue: String,
    state: String,
    zip_Code: String,
    submitted_Via: String,
    date_Received: String,
    date_sent_to_Company: String,
    company: String,
    company_Response: String,
    timely_Response: String,
    consumer_Disputed: String,
    

complaintSchema .set('collection', 'Consumer_Complaints');

然后在 server.js 中:-

app.get('/', function (req, res) 
    console.log("I received a GET request")

    complaintSchema.find(, function (err, results) 
        res.json(results);
        console.log(results);//Your Json result
    );
);

【讨论】:

【参考方案2】:

Model.find 将返回一个回调。您可以尝试以下方法来替换您的 console.log(Model.find()) 。

Model.find(, function (err, docs) 
  if (err) console.log(err);
  
  console.log(docs);
);

更多文档在这里:http://mongoosejs.com/docs/api.html#model_Model.find

【讨论】:

以上是关于将 mongoDB 集合导入 Express 模型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Express.js 应用程序中将猫鼬模型与正确的 MongoDB 集合相关联?

使用Express将表单数据导入mongoDB数据库

Node.JS、Express 和 MongoDB :: 多个集合

从上下文中获取模型与导入 - apollo server express & mongoose

使用 Express、Mongodb 和 EJ 显示下拉动态数据

sh 如何将文件导入MongoDB中的集合