首页 新闻 会员 周边 捐助

mongodb提取子数组

0
悬赏园豆:10 [已解决问题] 解决于 2019-01-15 17:19

比如有下面格式的文档

```json

{

  _id: ..., 

  "key": [

    {

      "subkey1":  ...,

      "subkey2": ...,

      "subkey3": ...

    },

    {

      "subkey1":  ...,

      "subkey2": ...,

      "subkey3": ...

    },

    ...

  ]

}

```

有可能只使用mongodb直接返回如下格式文档查询结果吗:

```json

[

  {

    "subkey1": ...,

    "subkey2": ...,

    "subkey3": ...

  }, 

  {

    "subkey1": ...,

    "subkey2": ...,

    "subkey3": ...

  },

  ...

]

```

如果还有node.js的mongodb库代码示例的话,就更好啦^_^

web_小隆的主页 web_小隆 | 初学一级 | 园豆:169
提问于:2019-01-13 21:00
< >
分享
最佳答案
1

实现你描述的功能可能需要两个 aggregation 操作符:$replaceRoot, $unwind:

首先使用 $unwind 把你的 Collection 变成:

[
    {"_id":... , key:{"subkey1":xxx, "subkey2":xxxx, "subkey3":xxxx}},
    {"_id":... , key:{"subkey1":xxx, "subkey2":xxxx, "subkey3":xxxx}},
    {"_id":... , key:{"subkey1":xxx, "subkey2":xxxx, "subkey3":xxxx}}
]

然后使用 $replaceRoot 将 key 节点变成根节点:

[
  {
    "subkey1": ...,
    "subkey2": ...,
    "subkey3": ...
  }, 
  {
    "subkey1": ...,
    "subkey2": ...,
    "subkey3": ...
  },
  ...
]

用来把 key 数组作为

收获园豆:10
不如隐茶去 | 小虾三级 |园豆:559 | 2019-01-15 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册