社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

如何在页面上显示MongoDB查询结果?

tygcraig • 6 年前 • 1547 次点击  

我有一个路由设置,它使用一个名为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'
}

my server.js中的连接如下:

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

在MongoShell中,我得到1个结果。我希望通过find查询返回这个结果。 有什么我错过的吗? 我用的是蒙古斯3.6

干杯

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31644
 
1547 次点击  
文章 [ 1 ]  |  最新文章 6 年前
Neil Lunn
Reply   •   1 楼
Neil Lunn    11 年前

所以这看起来非常像是您已经在一个现有的数据库中创建了集合,现在您正试图用Mongoose模型访问这些集合。

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

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

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

所以第三个论点 method 实际上指定要用于集合的显式名称。如果不这样做,默认规则下的假定名称将是“todos”。

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