È possibile accedere all'indice di array durante lo svolgimento di un array (http://docs.mongodb.org/manual/reference/operator/aggregation/unwind/#pipe._S_unwind) utilizzando la pipeline di aggregazione MongoDB?Come proiettare l'indice di array dopo aver srotolato un array con il framework di aggregazione MongoDB
Per esempio, supponiamo che io sto svolgendo questo documento in collezione "c":
{_id: 1, elements: ["a", "b", "c"]}
allora questa operazione:
db.c.aggregate([
{$unwind: "$elements"}
])
tornerà un cursore per i documenti:
[
{_id: 1, elements: "a"},
{_id: 1, elements: "b"},
{_id: 1, elements: "c"}
]
Mi piacerebbe essere in grado di capire oltre che "a" aveva indice 0, "b" aveva indice 1 e "c" aveva indice "2" nell'array originale prima di svolgersi.
Come si può proiettare l'indice di array in un'operazione di svolgimento?
Grazie! Ho avuto l'impressione che non fosse possibile dal momento che ho visto ora esempi né trovato alcun operatore per proiettare l'indice. Ma non ho ancora trovato questo rapporto. Grazie! –
Sei il benvenuto. Una combinazione di operatori, '$ let' e' $ map' ci può avvicinare ai valori manipolati del progetto, ma a causa delle loro limitazioni di ambito, l'indicizzazione incrementale non può essere raggiunta. – BatScream
Sono consapevole che con la mappa/riduzione si può fare praticamente qualsiasi cosa entro i limiti della mappa/ridurre l'implementazione. Una cosa che mi sconcerta è come assicurarsi che il risultato della mappa non diventi troppo grande. Per quanto riguarda il problema in oggetto, penso che il caso JIRA proponga un modo ragionevole per proiettare l'indice. Finora, sto vivendo una curva di apprendimento piuttosto ripida imparando a interrogare MongoDB. –