Har du provat
BasicDBObject orderBy = new BasicDBObject("labels.0.value", 1);
Det är inte uppenbart, men MongoDB-dokumentationen undviker det. Att använda $-tecknet matchar det första objektet, men att ange numret på arrayelementet verkar fungera. Om någon har ett bättre dokument som beskriver beteendet, vänligen svara med länken.
Från dokumentationen
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 } } )
Dokumentationen finns här