如何查询所有文档中的所有不同嵌入文档

时间:2017-10-13 18:56:52

标签: json mongodb

例如,我想在我的数据库中列出所有已注册的发布者。我将如何使用此嵌入式文档执行此操作:

{
   title: "MongoDB: The Definitive Guide",
   author: [ "Kristina Chodorow", "Mike Dirolf" ],
   published_date: ISODate("2010-09-24"),
   pages: 216,
   language: "English",
   publisher: {
              name: "O'Reilly Media",
              founded: 1980,
              location: "CA"
            }
}

我想独立于其图书检索所有DISTINCT发布者。如果我使用这样的文档引用会更容易:

{
   name: "O'Reilly Media",
   founded: 1980,
   location: "CA",
   books: [123456789, 234567890, ...]
}

{
    _id: 123456789,
    title: "MongoDB: The Definitive Guide",
    author: [ "Kristina Chodorow", "Mike Dirolf" ],
    published_date: ISODate("2010-09-24"),
    pages: 216,
    language: "English"
}

但我不想这样做。

2 个答案:

答案 0 :(得分:0)

您是否希望获得所有发布商而不管书籍?您是否尝试过MongoDB Aggregation $项目管道?

类似的东西:

{{1}}

答案 1 :(得分:0)

你也可以试试这个:

db.getCollection('yourCollectionName').aggregate([
{
   $group: {
       _id: "$publisher"
       } 
}
])