2

私は私のmongodbにこの構造を持っています

    {
        category:['A','B'],
        info:.....,
    }
    {
        category:['A','F','T'],
        info:.....,
    }
    {
        category:['A','C'],
        info:.....,
    }
    {
        category:['D','B'],
        info:.....,
    }

私はすべてのカテゴリをクエリする必要があります、

var db = mongo.db(read+"@127.0.0.1:27017/database",{safe:false});
db.collection('comercio').find({},{_id:0,'category.$':1},function(err, result_array)

最初の質問、すべてのカテゴリを取得する方法はありますか?私の代わりに他のアプローチ??

2番目の質問...

すべてのカテゴリを含む配列を作成する必要がありますが、どのカテゴリも繰り返さないでください...この例では、これを含む配列を作成する必要があります...

all_categories=['A','B','C','D','F','T'];

どうもありがとうございました...

4

2 に答える 2

1

個別のカテゴリの配列を取得するために集約フレームワークは必要ありません。

個別に使用するだけです:

> db.comercio.distinct("category");
["A","B","C","D","F","T"]
于 2013-03-01T08:41:04.987 に答える
1

次のように、このクエリには集計フレームワークを使用する必要があります。

db.comercio.aggregate( { $unwind : "$category" } );

巻き戻した後、必要なものを取得するために他の集計 (グループなど) を使用できます。

于 2013-02-27T06:57:09.293 に答える