【问题标题】:nodejs , mongo find return no datanodejs , mongo find 没有返回数据
【发布时间】: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;

【问题讨论】:

标签: node.js mongodb express mongoose


【解决方案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');
    

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2019-07-28
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多