Mongoose: ユーザーの完全なリストを取得する 質問する

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);
    });
});

基本的に、すべてのユーザーがデータベースから取得された場合にのみコールバックが実行されるようにしたいと思います。

ベストアンサー1

_idまあ、本当に からへのマッピングを返したい場合はuser、次のようにすることができます。

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()一致するすべてのドキュメントを配列で返すので、最後に切り取ったコードはその配列をクライアントに送信します。

おすすめ記事