sql >> データベース >  >> NoSQL >> MongoDB

mongoose / mongodb/nodeで非同期コールバックを使用してループする

    async のようなものを使用したいと思います それらの要求を調整するため。 map() 良い選択のようです:

    Author.find({}, function (err, authors) {
      async.map(authors, function(author, done) {
        Book.count({author: author._id}, function(err, count) {
          if (err)
            done(err);
          else
          {
            done(null, {
              id    : author._id,
              name  : author.name,
              count : count
            });
          }           
        });
      }, function(err, author_array) {
        if (err)
        {
          // handle error
        }
        else
        { 
          /*
          res.writeHead(200, { 'Content-Type': 'application/json' });
          res.write(JSON.stringify({ authors: author_array }));
          res.end();
          */
          // Shorter:
          res.json(author_array);
        }
      });
    });
    



    1. 2レベルの不明な親キーを使用したMongoクエリのネストされたフィールド値

    2. Mongodbの2つのフィールドを組み合わせて検索

    3. MongoDB'$or'とPHPの正規表現

    4. MongoDB $ tanh