Diciamo che ho il seguente schema di documento in una raccolta chiamata 'utenti':MongoDB: interrogazione e recupero di oggetti all'interno dell'array incorporato?
{
name: 'John',
items: [ {}, {}, {}, ... ]
}
L'array 'voci' contiene oggetti nel seguente formato:
{
item_id: "1234",
name: "some item"
}
Ogni utente può avere più elementi incorporato nell'array 'items'.
Ora, voglio essere in grado di recuperare un oggetto da un item_id per un dato utente.
Ad esempio, desidero ottenere l'elemento con ID "1234" appartenente all'utente con il nome "John".
Posso farlo con mongoDB? Mi piacerebbe utilizzare la sua potente indicizzazione di array, ma non sono sicuro che sia possibile eseguire query su array incorporati e restituire oggetti dall'array invece del documento che lo contiene.
So che posso recuperare gli utenti che hanno un determinato oggetto utilizzando {users.items.item_id: "1234"}. Ma voglio recuperare l'oggetto reale dall'array, non l'utente.
In alternativa, c'è forse un modo migliore per organizzare questi dati in modo da poter ottenere facilmente ciò che voglio? Sono ancora abbastanza nuovo per mongodb.
Grazie per qualsiasi aiuto o consiglio che è possibile fornire.
possibile duplicato del [MongoDB estrarre solo l'elemento selezionato in ordine] (http: // stackoverflow.com/questions/3985214/mongodb-extract-only-the-selected-item-in-array) – Foreever
Ciao, @Nebs, puoi rivedere la risposta accettata e modificarla? Perché c'è una soluzione a questo problema senza bisogno di due raccolte separate nelle versioni più recenti di mongodb. –