MongoDb聚合运算符$arrayToObject可以将一个数组转换为文档。注意只有两种数组才可以转换为文档,参见$arrayToObject使用。
语法
{
$arrayToObject: <expression> }
<expression>必须是数组或能够被解析为数组的表达式,而且数组元素要么是只有两个元素的数组,要么是包含k、v两个字段的文档数组。
使用
注意,不是所有的数组表达式都能转换为文档,只有下面两种数组才可以进行转换:
-
只有两个元素的数组,第一个元素为字段名,第二个元素为字段值:
[ [ [ "item", "abc123" ], [ "qty", 25 ] ] ] -
包含两个字段的文档数组,一个字段是
k一个字段是v:- 字段
k包含了字段名 - 字段
v包含了字段值
[ [ { "k": "item", "v": "abc123" }, { "k": "qty", "v": 25 } ] ] - 字段
| 例子 | 返回 |
|---|---|
{ $arrayToObject: [[ { "k": "item", "v": "abc123" }, { "k": "qty", "v": "$qty" } ]] } |
当文档字段qty的值为25时,返回:{ "item" : "abc123", "qty" : 25 } |
{ $arrayToObject: { $literal: [[ "item", "abc123" ], [ "qty",25 ]] } } |
{ "item" : "abc123", "qty" : 25 } |
{ $arrayToObject: { $literal: [ { "k": "item", "v": "123abc" }, { "k": "item", "v": "abc123" }] } } |
{ "item" : "abc123" } |
举例
$arrayToObject
集合inventory中有下面的文档:
{
"_id" : 1, "item" : "ABC1", dimensions:

最低0.47元/天 解锁文章
2109

被折叠的 条评论
为什么被折叠?



