-
Type: New Feature
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: API
-
None
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}}
- 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