Details
-
New Feature
-
Status: Backlog
-
Major - P3
-
Resolution: Unresolved
-
None
-
None
-
None
Description
In many cases, it would be useful to convert an object to an array. We should add an aggregation expression to do so. For example, it could be called $objectToArray, and do something like this:
> db.foo.insert({_id: 0, subDoc: {a: 1, b: 3, c: "example"}}); |
> db.foo.aggregate([{$project: {expanded: {$objectToArray: "$subDoc"}}}]) |
{_id: 0, expanded: [{k: "a", v: 1}, {k: "b", v: 3}, {k: "c", v: "example"}]} |
Original Description
Currently, if a collection contains the following document:
{_id: 0, data: {a: 1, b: 2, c: 3}}
|
There is no way to unwind that one document into the following three documents:
{_id: 0, data: {a: 1}}
|
{_id: 0, data: {b: 2}}
|
{_id: 0, data: {c: 3}}
|
Attachments
Issue Links
- depends on
-
SERVER-18794 Add an aggregation expression to convert an object to an array of key, value pairs
-
- Closed
-
- is depended on by
-
DRIVERS-358 Aggregation Framework Support for 3.6
-
- Closed
-