Czy próbowałeś
BasicDBObject orderBy = new BasicDBObject("labels.0.value", 1);
Nie jest to oczywiste, ale dokumentacja MongoDB do tego wymyka się. Użycie znaku $ pasuje do pierwszego elementu, ale określenie numeru elementu tablicy wydaje się działać. Jeśli ktoś ma lepszy dokument opisujący zachowanie, prosimy o odpowiedź z linkiem.
Z dokumentacji
The positional $ operator facilitates updates to arrays that contain embedded
documents. Use the positional $ operator to access the fields in the embedded
documents with the dot notation on the $ operator.
db.collection.update( { <query selector> }, { <update operator>: { "array.$.field" : value } } )
Dokumentacja jest tutaj