将 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 集合相关联?
Node.JS、Express 和 MongoDB :: 多个集合
从上下文中获取模型与导入 - apollo server express & mongoose