1. ホーム
  2. javascript

[解決済み] マングース ユーザーの全リストを取得する

2022-05-13 21:56:49

質問

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

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

どのように解決するのですか?

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