$objectToArray 作为对象表达式运算符

适用对象: MongoDB vCore

$objectToArray 运算符用于将文档(对象)转换为键值对数组。 生成的数组中的每个键值对都表示为具有 kv 字段的文档。 当需要操作或分析集合中的文档结构时,此运算符非常有用。

语法

{ $objectToArray: <object> }
  • <object>:要转换为键值对数组的文档(对象)。

示例

给定一个代表商店的示例 JSON 文档,我们可以使用 $objectToArray 运算符来转换此文档的各个部分。

示例 1:转换 location 对象

以下聚合管道将 location 对象转换为键值对数组。

db.stores.aggregate([
  {
    $project: {
      locationArray: { $objectToArray: "$store.location" }
    }
  }
])

示例 2:转换 staff.totalStaff 对象

此示例演示了如何将 staff.totalStaff 对象转换为键值对数组。

db.stores.aggregate([
  {
    $project: {
      totalStaffArray: { $objectToArray: "$store.staff.totalStaff" }
    }
  }
])

示例 3:转换 salesByCategory 数组

如果要转换 salesByCategory 数组,则首先需要展开该数组,然后应用 $objectToArray 运算符。

db.stores.aggregate([
  { $unwind: "$store.sales.salesByCategory" },
  {
    $project: {
      salesByCategoryArray: { $objectToArray: "$store.sales.salesByCategory" }
    }
  }
])