【问题标题】:Mongoose with MongoDB Atlas return empty arrayMongoose 与 MongoDB Atlas 返回空数组
【发布时间】:2019-08-18 13:27:19
【问题描述】:

我正在尝试将 express.js 与 MongoDB Atlas 和 mongoose 连接,但服务器总是返回一个空数组“[]”。当我加载本地数据库时,一切正常(本地 MongoDB 和 MongoDB Atlas 具有相同的值)

控制器:

const mongoose = require('mongoose');
const HistoryData = require('../models/databaseHistory');

exports.data = (req, res) => {
    res.header("Access-Control-Allow-Origin", "*");
    mongoose.connect('mongodb+srv://olechbartlomiej:<myPass>@quizapp-mpygt.mongodb.net/test?retryWrites=true', {useNewUrlParser: true});
    mongoose.Promise = global.Promise;
    HistoryData.find({ type : 'question' }).then((historyData) => {
        res.send(historyData)
    })
}

架构:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const dataSchema = new Schema({
    type: {
        type: String
    },
    data: {
        type: String
    }
})

const HistoryData = mongoose.model('history', dataSchema);
module.exports = HistoryData;

MongoDB Atlas 集合: (数据库名称:测试,集合名称:历史)

    _id : 5c9bdb721c9d440000345d62
    type : "question"
    data : "test test"

屏幕:MongoDB Atlas screen

服务器返回[ ]

【问题讨论】:

    标签: node.js database mongodb express mongoose


    【解决方案1】:

    您需要在连接时指定数据库名称作为选项。 将选项对象更新为此: {useNewUrlParser: true, dbName: "YOUR-DB-NAME-HERE"}

    【讨论】:

    • 是集群名称吗?
    猜你喜欢
    • 2017-09-12
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多