gpt4 book ai didi

javascript - Mongoose find()不返回结果

转载 作者:IT老高 更新时间:2023-10-28 13:06:31 26 4
gpt4 key购买 nike

我有一个使用名为 Todo 的模型的路线设置,如下所示:

app.get('/api/todos', function(req, res) {
Todo.find({},function(err, todos) {
if (err)
res.send(err);
console.log("number of todos " + todos.length);
res.json(todos); // return all todos in JSON format
});
});

但是,todos.length 始终为 0,因为它找不到任何结果。当我运行时:

use test3
db.Todo.find()

我确定我已连接到同一个数据库。我可以在 mongod 控制台中看到连接。我的连接在 config/db.js 文件中:

module.exports = {
url : 'mongodb://localhost/test3'
}

我的server.js中的连接如下:

var db = require('./config/db');
mongoose.connect(db.url);

在 Mongo Shell 中我得到 1 个结果。我期待这个结果由 find 查询返回。有什么我错过的吗?我正在使用 Mongoose 3.6

干杯

最佳答案

所以这看起来很像,您已经在现有数据库中创建了集合,现在您正尝试使用 mongoose 模型访问这些集合。

问题在于 mongoose 使用了一些您可能不知道的默认值,因此您从 shell 显示的示例与 mongoose 默认执行的示例不同。

因此,您可以重命名您的集合以匹配默认情况下 mongoose 所期望的内容,或者更改 mongoose 所做的以匹配您现有的名称。在后一种情况下,您可以像这样直接定义模型名称:

mongoose.model( "Todo", toDoSchema, "Todo" );

所以 method 的第三个参数实际上指定了用于集合的显式名称。如果没有这个,默认规则下的假定名称将是“todos”。

使用任一方法以使它们匹配。

关于javascript - Mongoose find()不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com