node.js - 使用 Mongoose 查找所有文件

标签 node.js mongodb mongoose

我试图使用 mongoose 查找数据库中的所有文档,但我做不到

我想这样做,但我不知道这样做有什么问题

app.get('/users', function (req, res){
    User.find({}, 'name', function(err, user){
        if(err){
            console.log(err);
        }else{
            res.render('user-list', {
                name : user.name
            });
            console.log('retrieved list of names' + user.name);
        }
    })
})

当我使用 User.findOne({}, 'name', function(err, user){.. 时我取回了我所期望的第一份文件。请解释为什么上面的代码不允许我获取所有文件。我觉得我正在以正确的方式使用它,如 mongoose doc 中所示

编辑

谢谢大家的帮助

我喜欢这样:

app.get('/users', function (req, res){
    User.find({}, 'name', function(err, users){
        if(err){
            console.log(err);
        }else{
            res.render('user-list', {
                name : users.map(function(doc){
                    return doc.name + "<br>"
                })
            });
            console.log('retrieved list of names' + users.name);
        }
    })
})

有人能帮我把每个名字换成新的一行吗 "<br>"显示在页面上,但不会换行 "<br>,Joe<br>,mike<br>"

Jade : 扩展布局

block content

    p list of users #{name} 

最佳答案

app.get('/users', function (req, res){
    User.find({}, 'name', function(err, users){
        if(err){
          console.log(err);
        } else{
            res.render('user-list', users);
            console.log('retrieved list of names', users.length, users[0].name);
        }
    })
});

如评论所述,find 可以找到很多对象,因此它返回一个数组,而 findOne 返回单个对象。如上所述进行调整,您应该回到正轨。

关于node.js - 使用 Mongoose 查找所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24816699/

相关文章:

node.js - MongoDB 保存用户时电子邮件和密码无效

mongodb - 如何覆盖 MongoDB 中的文档

java - 在 Spring Data MongoDB 存储库中计数

node.js - Express Mongoose 查询无法设置标题

javascript - 使用 Node JS 在 mongoose 中存储多个文本的理想方法是什么?

node.js - 如何通过node js中的登录Api验证电子邮件和密码

javascript - Node : How to free buffers that get allocated outside of the V8 memory heap

javascript - 在 Node 服务器上使用 pdf.js

node.js - 你如何更新 Mongoose 中的引用文档?

mongodb - 如何删除MongoDB中的多个关系文档?