当前位置: 首页 > 面试题库 >

猫鼬find()不返回结果

卫子平
2023-03-14
问题内容

我有一个使用名为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

干杯


问题答案:

因此,这非常像是您已经在现有数据库中创建了集合,现在您正尝试使用猫鼬模型访问这些集合。

问题是猫鼬使用了一些您可能不知道的默认值,因此您在shell中显示的示例与猫鼬默认情况下所做的不同。

因此,您可以重命名您的集合以匹配默认情况下的猫鼬期望,或者更改猫鼬所做的事情以匹配您现有的名称。在后一种情况下,您可以直接定义模型名称,如下所示:

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

因此,该方法的第三个参数实际上指定了用于集合的显式名称。否则,默认规则下的假定名称将为“ todos”。

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



 类似资料:
  • 问题内容: 我能找到的所有带有猫鼬结果的页面都可以做到这一点: 如何从查询中返回结果,更像这样? 这样我就可以在页面上发布多个结果? 喜欢: 能做到吗? 问题答案: 您正在尝试强制执行同步范例。就是行不通。node.js是单线程的,大部分情况下- 完成io后,便产生了执行上下文。信令通过回调进行管理。这意味着您具有嵌套的回调,命名函数或流控制库,以使外观看起来更好。 https://github.

  • 问题内容: 我刚开始和猫鼬一起玩。我有以下代码: 将条目添加到数据库中没有问题,但是检索它们时遇到了问题。我对整个工作原理有些困惑。我的理解如下: 有一些架构,就像oop中的类一样,因此只是数据库中记录的蓝图。该模型是一条记录,可以,也许更多,因为我看到您可以向模型添加方法。好吧…我不太了解如何使用它们。你能给我一个线索,他们到底是什么? 返回主题:发出find命令时,它会调用匿名函数,而docs

  • 问题内容: 我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据: 根据要求: 我正在执行以下代码: 我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么? 编辑:以下代码也返回空: 使用的架构: 问题答案: 您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命

  • 问题内容: 我一直在努力让Mongoose从本地MongoDB实例返回数据。我可以在MongoDB Shell中运行相同的命令,然后返回结果。我在stackoverflow上找到了一篇帖子,谈论我在这里遇到的确切问题; 我已经遵循了这篇文章的答案,但是我似乎仍然无法正常工作。我创建了一个简单的项目,试图使事情变得简单,这是代码。 这是2 console.log语句的响应: 错误:空 用户名:nul

  • 问题内容: 在Node.js中使用Mongoose,您可以使用find返回一些字段。例如。 但我似乎无法弄清楚如何使用findOneAndUpdate返回某些字段。 有人做到过吗?我在文档中找不到它。 问题答案: 从说明书,该参数需要一个关键的它,因为还有其他的细节,比如和地方适用。您 还 需要以下选项: 您也可以使用 请注意,没有返回的文档处于处理更新修改 之前 的状态。有时候这就是您的意思,但

  • 问题内容: 我有这个电话: 我在哪里指定要返回的属性?在文档中找不到它。以上返回整个对象。我只希望返回一些属性。 这是我的架构: 我不想在我的休息电话中包含项目数组。 问题答案: 您使用投影。猫鼬查询文档中的第一个示例具有投影操作。 注意:不是真正的代码b / c,我用三颗星突出显示了重要的部分 该方案没有规定,但我认为例子是再清楚不过。