MongoDB entspannen mehrere arrays
In mongodb Dokumente, die in der folgenden Struktur:
{
"_id" : ObjectId("52d017d4b60fb046cdaf4851"),
"dates" : [
1399518702000,
1399126333000,
1399209192000,
1399027545000
],
"dress_number" : "4",
"name" : "J. Evans",
"numbers" : [
"5982",
"5983",
"5984",
"5985"
]
}
Ist es möglich, erholen Sie Daten aus mehreren arrays und bekommen nur paarweise Elemente von arrays:
{
"dates": "1399518702000",
"numbers": "5982"
},
{
"dates": "1399126333000",
"numbers": "5983"
},
{
"dates": "1399209192000",
"numbers": "5984"
},
{
"dates": "1399027545000",
"numbers": "5985"
}
- was passiert, wenn
dates
array-Länge und dernumbers
array der Länge nicht gleich? - Sie haben immer die gleiche Länge.
- Die
dates
array-element ist ein string"[1399518702000, 1399126333000, 1399209192000, 1399027545000]"
ist, und kein array. - das war der Fehler, danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ab version 3.2 können Sie es mit
$unwind
auf die beiden arrays$cmp
die Indizes, und$match
nur die gleichen Indizes.Diese Lösung aufgefüllt wird, was Sie schrieb, im Falle dass Sie nur das Beispiel-Dokument. Wenn Sie mehr Dokumente, die ich nicht wissen, was Sie erwarten, um in den Ausgang, aber es ist lösbar durch Gruppierung durch die _id des Dokuments.