dousu8767 2019-02-11 14:05
浏览 323
已采纳

Yii2的mongodb集合 - 获取嵌套数组的所有内容

I have a Yii2 mongodb's collection that looks like this:

{
 "_id" : "123",
 "books" : [
  {
   "author" : "John",
   "title" : "The Book"
  },
  {
   "author" : "Smith",
   "title" : "Something!"
  }
 ]
}
{
 "_id" : "321",
 "books" : [
  {
   "author" : "John",
   "title" : "The Book"
  }
 ]
}
...

And I want to get an array of all books (an array of arrays basically):

[
  {
   "author" : "John",
   "title" : "The Book"
  },
  {
   "author" : "Smith",
   "title" : "Something!"
  },
  {
   "author" : "John",
   "title" : "The Book"
  }
...
]

I saw answers to close questions, but they all achieve something a bit different. Also tried $collection->distinct('books', [], []) and it worked, but it removed duplicates which is unacceptable.

  • 写回答

2条回答 默认 最新

  • dongyi2083 2019-02-12 13:32
    关注

    Use this MongoDB query to get this resultset

    db.collection.aggregate([
        { $unwind : "$books"}, 
        { $group: { 
          _id: null, 
          items: 
            { $push: "$books" } 
        }}
    ]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?