javascript - Mongoose:获取完整的用户列表

我曾尝试使用 Mongoose 发送所有用户列表如下:

server.get('/usersList', function(req, res) {
    var users = {};

    User.find({}, function (err, user) {
        users[user._id] = user;
    });

    res.send(users);
});

当然,res.send(users); 会发送 {},这不是我想要的。是否有一个语义略有不同的 find 替代方案,我可以在其中执行以下操作?

server.get('/usersList', function(req, res) {    
    User.find({}, function (err, users) {
        res.send(users);
    });
});

基本上,我希望只有在从数据库中获取所有用户时才执行回调。

最佳答案

好吧,如果你真的想返回一个从 _iduser 的映射,你总是可以这样做:

server.get('/usersList', function(req, res) {
  User.find({}, function(err, users) {
    var userMap = {};

    users.forEach(function(user) {
      userMap[user._id] = user;
    });

    res.send(userMap);  
  });
});

find() 在一个数组中返回所有匹配的文档,因此您最后截取的代码将该数组发送到客户端。

https://stackoverflow.com/questions/14103615/

相关文章:

database-design - MongoDB Schema Design - 许多小文档还是更

linux - MongoDB GUI 客户端(跨平台或 Linux)

node.js - 如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会

mongodb - 有没有一种简单的方法可以从 meteor 部署的应用程序中导出数据?

node.js - 在 Mongoose 中将两个 OR 查询与 AND 组合

mongodb - Mongoose 唯一索引不起作用!

MongoDB - 分页

node.js - 编译 Mongoose 后无法覆盖模型

mongodb - 面向列的 NoSQL 与面向文档的 NoSQL 有何不同?

python - 插入后如何更新 Mongo 文档?