javascript - Mongoose 已连接但找不到数据

标签 javascript node.js mongodb express mongoose

我有一个问题,真的需要一些帮助。 我们有一个使用 MySQL 的应用程序,我们正在切换到 MongoDB。 我们将 Node.js 与 Express 结合使用,并使用 MongoDB 和 Mongoose 作为数据库

我们查看了 MongoDB 和 Mongoose 文档并在 Stack Overflow 上搜索了相关问题,但我们似乎遗漏了一些东西。

这是我们在 app.js 中的内容:

var mongo = require('mongodb');
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost:27017/DBName');

这是我们的 usersModel.js

var db          = require('mongoose');
var Schema      = db.Schema;

var userSchema  = new Schema({
    u_id :                      Number,
    u_name :                    { type: String, required: true },
    u_lastname :                String
});

module.exports  = db.model('user', userSchema);

这就是我们在 userController 中使用的:

var User        = require('../models/usersModel');

User.find({}, function(err, users) {
    if (err) throw err;

    console.log("Found users: ", users);
});

console.log(db.connection.readyState);说它正在连接。 并且 User.find() 似乎没有给出错误,而是给出了一个空数组/未定义。

如果有人能告诉我们我们忽略了什么,我们将不胜感激。

提前致谢。

最佳答案

不知道为什么有人认为这是个好主意,但这是 mongoose 的做法:

Mongoose by default produces a collection name by passing the model name to the utils.toCollectionName method. This method pluralizes the name.

作为奖励,它是小写的,当您的表名采用驼峰命名法时,这很糟糕。

您可以通过在方案中设置以下选项来修复它:

var userSchema = new Schema({..}, { collection: 'user' });

关于此的更多信息 here .

关于javascript - Mongoose 已连接但找不到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524673/

相关文章:

node.js - Redis Node : Ready check failed: NOAUTH Authentication required

java - 使用 Java API 在 Elasticsearch 中创建 MongoDB River

javascript - 在 JavaScript 中使用高阶函数中的原型(prototype)函数

javascript - 自定义 JQuery UI 对话框的正确方法

javascript - 对 API 网关的 XMLHttpRequest 不起作用

javascript - 在 onClick 中传递数据的替代方案?

mysql - 何时在 Node 中初始化 mysql 连接

MongoDB db.getCollection.find 和db.tablename.find 的区别?

c# - C# 的 Mongo 2.1 rc0 驱动程序中包含 ContainsAll

javascript - 将 JSON 从 Rails Controller 加载到 javascript 文件中的 d3 .defer() 函数