2016-03-15 60 views
1

我收集的是单据,这样的:如何在mongodb中创建组?

{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100", "code" : "ZZZ" }, 
{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599200", "code" : "ZZZ" } 

如何使分组得到的输出是这样的:

{ 
    "ZZZ": { 
    "items": { 
     0: { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100"}, 
     1: { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599100"} 
    } 
    } 
} 

回答

1

这应该给你类似于你在找什么:

db.collection.aggregate([{ $group : { _id : "$code", items: { $push: "$$ROOT" } } }]) 

它将返回:

{ 
    "_id" : "ZZZ", 
    "items" : 
    [ 
     { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100", "code" : "ZZZ" }, 
     { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599200", "code" : "ZZZ" } 
    ] 
} 

可以找到文档under $group aggregation