nodejs , mongo find 没有返回数据
Posted
技术标签:
【中文标题】nodejs , mongo find 没有返回数据【英文标题】:nodejs , mongo find return no data 【发布时间】:2020-04-15 05:19:12 【问题描述】:我正在尝试使用 find() 从 mongodb 获取数据列表,虽然我在集合中有数据,但它没有返回任何数据!我不知道是什么原因,谁能帮忙?
结果如下: 错误:错误, 按摩: [ ]
这是项目依赖项
"dependencies":
"body-parser": "^1.19.0",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"mongoose": "^5.8.3",
"nodemon": "^2.0.2"
server.js
require('./models/db');
const express = require('express');
const loController = require('./controllers/loController');
var app = express();
app.listen(3000, () =>
console.log('I am Listening ... ');
);
app.use('/lomanager', loController);
db.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/LOManager', useNewUrlParser: true, useUnifiedTopology: true , (error) =>
if (!error) console.log('mongoose connection success');
else console.log("error with mongo connnect" + error);
);
require('./lo.model');
lo.model.js
const mongoose = require('mongoose');
var loSchema = new mongoose.Schema(
_id: Number,
name: String,
email: String
);
module.exports = mongoose.model('LO', loSchema);
loController.js
const express = require('express');
var loSchema = require('../models/lo.model');
var mongoose = require('mongoose');
var router = express.Router();
router.get('/', (req, res) =>
res.json('helo from lo Controller');
);
router.get('/list', (req, res) =>
var result = ;
loSchema.find(, (err, data) =>
if (err)
result = "error": true, "message": "error in the find"
else
result = "error": false, "massage": data ;
res.json(result);
);
);
module.exports = router;
【问题讨论】:
评论不用于扩展讨论;这个对话是moved to chat。 【参考方案1】:这是因为 Mongoose 默认将集合名称复数
所以我们也可以这样做:
var loSchema = new mongoose.Schema(
_id: Number,
name: String,
email: String
, collection: 'LO');
module.exports = mongoose.model('LO', loSchema);
这个链接解释了原因! mongoose-force-collection-name
【讨论】:
【参考方案2】:您的收藏名称是'LO',所以请使用该代码
module.exports = mongoose.model('LO', loSchema,'LO');
【讨论】:
以上是关于nodejs , mongo find 没有返回数据的主要内容,如果未能解决你的问题,请参考以下文章
Mongo Shell 不会使用 find() 查询返回所有匹配的文档
Mongo find() 在 express 中返回 [object Object]
MongoError: 必须使用 Mongo DB Native NodeJS Driver 对所有 $meta 排序键进行 $meta 投影