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

マングースfind()、結果ドキュメントにアクセスする方法は?

    私は欠点を見つけました。それはもっと概念的なものでした。私は非同期呼び出しを扱っていて、別の関数から結果を返そうとしていますが、いつ実行されるかわかりません。したがって、dbクエリを実行して結果を返すように要求すると、nullになります。このコード:

    getNinjas : function(){
        var res = null;
        Ninja.find({},'name skill',function(err,docs){
            if (err)
                console.log('error occured in the database');
            console.log(docs);
        });     
        return res;
    }
    

    nullを返しますが、! console.log(docs)は、データベースからのすべての値をコンソールに出力します。これは私がやろうとしていたことです。次に、変更を加える必要があります。おそらく、結果の受信時に実行されるコールバックを渡します。

    変更を加えると、コードは次のようになります。

    getNinjas : function(res){
        var twisted = function(res){
            return function(err, data){
                if (err){
                    console.log('error occured');
                    return;
                }
                res.send('My ninjas are:\n');
                console.log(data);
            }
        }
    
        Ninja.find({},'name skill',twisted(res));
    }
    

    このように、応答オブジェクトを渡すことができるので、忍者の名前を送信できます:)




    1. Mongoクエリの質問$gt、$ lt

    2. マングース-基準によるサブドキュメントの検索

    3. MongoDBelemmatch配列内の複数の要素

    4. AndroidアプリでMongoDBステッチを使用する方法