node.js - Mongoose 在空数组中找到结果,并且很确定所有模型都匹配
问题描述
我确信这已经得到了回答,但我无法得到任何工作。
我有一个简单的 Node.js 应用程序,它只获取一个 id 并通过该 id 查找事件。现在我想找回所有的事件,不管他们的 ID 是什么。
下面是我的代码,我已经检查过并且数据库连接字符串工作正常(启动我的应用程序时我可以看到连接)
控制器
// Model
const Incident = require('../models/incident');
exports.fetchByID = function(req, res, next) {
console.log(req.params.id);
Incident.find({}, (err, incident) => {
if(err) console.log(err)
if(!incident || incident == []) return res.json({success: false, message: 'No incident found'});
if(incident) return res.json({success: true, incident});
});
};
模型
const mongoose = require('mongoose');
const incidentSchema = new mongoose.Schema({
status: {
type: Boolean,
default: false
},
createdAt: { type: Date, required: true, default: Date.now }
});
module.exports = mongoose.model('Incident', incidentSchema);
我如何连接
// Mongo Connection
const dbString = `${config.db}/incident`;
mongoose.connect(dbString, { autoReconnect: true, useNewUrlParser: true }, (err) => {
if (!err) console.log('MongoDB has connected successfully.');
});
Mongo Atlas 中 DB.collection 的名称incident.incidents
数据库中当前有 1 个文档。
{
"success": true,
"incident": []
}
解决方案
好的,这很奇怪......我从另一个使用相同数据库的应用程序中复制了连接字符串。唯一的区别是?retryWrites=true
我尝试将它添加到我的连接字符串中并且它有效。我零线索为什么当我试图阅读而不是写任何东西时这很重要。
谁能解释发生了什么以及为什么它说它已连接并且所有内容都返回了一个空数组而不是正确的值?
推荐阅读
- javascript - JQuery 不更新背景图像元素?
- java - java中的分数背包实现(但不是正确答案)
- ruby-on-rails - Rails 6资产预编译在heroku上失败
- python - 如何从 Google Colab 中的“train”文件夹中的多个文件夹加载多个图像?
- regex - 使用正则表达式提取和捕获字符串中的元素,并使用条件确定正则表达式是否适用于给定字符串
- spring - 如何在 Kotlin DSL 中使用 Spring HATEOAS“linkTo”?
- c# - 链接库中函数返回的任务
- html - IOS Chrome通过新页面链接(_blank)重定向后无法显示页面顶部
- database - 如何在单元测试中访问真实数据库?
- c - CS50 - 编译问题