【发布时间】:2016-01-07 12:54:55
【问题描述】:
我有下一个文档集合:
{ "_id" : ObjectId("568dc77473bf57f465da61dd"), "name" : "Rama", "items" : [ { "id" : 40, "name" : "Botella" }, { "id" : 30, "name" : "Frasco" } ] }
{ "_id" : ObjectId("568dc78873bf57f465da61de"), "name" : "Pepe", "items" : [ { "id" : 40, "name" : "Botella" }, { "id" : 29, "name" : "Cigarrillo" } ] }
每个文档都有一个项目集合。每个项目都是一个文档。所以我有集合中所有不同项目的列表:
{ "id" : 40, "name" : "Botella" },
{ "id" : 29, "name" : "Cigarrillo" },
{ "id" : 30, "name" : "Frasco" }
使用 $unwind 我在每个文档中获得了一项:
db.test.aggregate([{'$unwind': '$items'}, {'$project': {'items.id': 1, 'items.name': 1, '_id': 0}}])
{ "items" : { "id" : 40, "name" : "Botella" } }
{ "items" : { "id" : 30, "name" : "Frasco" } }
{ "items" : { "id" : 40, "name" : "Botella" } }
{ "items" : { "id" : 29, "name" : "Cigarrillo" } }
但是现在,我不知道如何获得不同的“项目”。我正在使用 MongoDB 迈出第一步。
有什么想法吗?
【问题讨论】:
-
使用简单的
distinct作为db.collection.distinct("items") -
太棒了!!!工作正常:) 谢谢。发表答案!
标签: mongodb