Arrays MongoDB中数组数组中的项目元素
我目前正在努力搜索导入MongoDB compass的JSON文件中的数组。在下面的代码中,您可以看到数组“track”包含多个其他数组。现在我想得到每个数组的第四个值,例如,我想从第一个数组得到“load”,从第二个数组得到“mouseover”,依此类推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"
{
"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中的何处/如何运行聚合查询。好的,谢谢,我需要在那里可视化数据:)