7

MongoDB と node-mongodb-native ドライバーを使用しています。

個別の属性を持つすべてのレコードを返そうとしています。

これは機能しているようですが、各ドキュメントのすべての値ではなく、明確であることをチェックしている値のみを返します。

これは、名前フィールドだけを返そうとしたものです。それなしで試してみましたが、常に配列内のitem_idのみを返します。

    this.collection.distinct("item_id", [{"name" : true}, {sold : {"$exists" : true}}], function(err, results) {
        if (err) {
            callback(err);
        } else {
            console.log(results);
        }
    });

各ドキュメントからすべてのデータを取得する方法について何か提案はありますか?

ありがとうございました!

編集:Map Reduceの使用

そのため、node-mongodb-native を使用して、map reduce の開始をセットアップしました。

    var map = function() {
        emit(this._id, {"_id" : this._id, "name" : this.name});
    }

    var reduce = function(key, values) {

        var items = [];

        values.forEach(function(v) {
            items.push(v);
        }); 

        return {"items" : items};
    }

    this.collection.mapReduce(map, reduce, {out: "res"}, function(err, results) {
        if (err) {
            console.log(err);
        } else {
            console.log(results);
        }
    });

ロジックが個別に存在しないことはわかっていますが、結果は db オブジェクトであり、「toArray」を使用できません。なぜこれが考えられるのでしょうか?

4

0 に答える 0