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)

第一个问题,有什么方法可以获取所有类别??另一种方法而不是我的?

第二个问题……

我必须制作一个包含所有类别但不重复任何类别的数组......在这个例子中我必须制作一个包含这个的数组......

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

再次感谢大家...

4

2 回答 2

1

您必须为此查询使用聚合框架,如下所示:

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

展开后,您可以使用其他聚合(例如组)来获得所需的内容。

于 2013-02-27T06:57:09.293 回答
1

您不需要聚合框架来获取不同类别的数组。

只需使用distinct

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