Arrays MongoDB中数组数组中的项目元素

Arrays MongoDB中数组数组中的项目元素,arrays,mongodb,mongodb-query,aggregation-framework,Arrays,Mongodb,Mongodb Query,Aggregation Framework,我目前正在努力搜索导入MongoDB compass的JSON文件中的数组。在下面的代码中,您可以看到数组“track”包含多个其他数组。现在我想得到每个数组的第四个值,例如,我想从第一个数组得到“load”,从第二个数组得到“mouseover”,依此类推 { "name":"nutzer1_50ms", "ip":"::1", "date":"Sat, 16 Dec 2017 21:53:19 +0100", "screen":"1920x1080", "window":"1920x966"

我目前正在努力搜索导入MongoDB compass的JSON文件中的数组。在下面的代码中,您可以看到数组“track”包含多个其他数组。现在我想得到每个数组的第四个值,例如,我想从第一个数组得到“load”,从第二个数组得到“mouseover”,依此类推

{
"name":"nutzer1_50ms",
"ip":"::1",
"date":"Sat, 16 Dec 2017 21:53:19 +0100",
"screen":"1920x1080",
"window":"1920x966",
"document":"1024x786",
"track":[
[1513457569930,0,0,"load",""],
[1513457569953,79,229,"mouseover","p3"],
[1513457570274,79,228,"mousemove","p3"],
[1513457570280,79,226,"mousemove","p3"],
["end","end","end","end"]]
}

我很高兴能在这方面得到一些帮助:)

您可以尝试下面的聚合查询

迭代
track
values&从数组中投影第四个元素

db.collection_name.aggregate([
  {
    "$project": {
      "4th": {
        "$map": {
          "input": "$track",
          "as": "track",
          "in": {
            "$arrayElemAt": [
              "$$track",
              3
            ]
          }
        }
      }
    }
  }
])

thx首先,我试图使用这段代码,但它不起作用:(np.我能看到你的查询吗?哪部分不起作用?我直接进入MongDB Compass筛选器:{“$project”:{“4th”:{“$map”:{“input”:“$track”,“as”:“track”,“in”:{“$arrayElemAt”:[“$$track”,3]}}}}查询筛选器似乎适用于常规查询。这是一个聚合查询。不确定在compass中的何处/如何运行聚合查询。好的,谢谢,我需要在那里可视化数据:)