Вы можете искать вложенный объект в mongodb, указав путь к вложенному свойству:
db.YOURCOLLECTION.find({"friends.name": "ABC"});
Подробнее о запросе вложенного объекта здесь
Возможноэто поле нужно проиндексировать перед выполнением поиска в этом поле?
Конечно, вы можете создать индекс для вложенного поля.Просто укажите индекс со свойством - это путь к вложенному полю, как указано выше:
db.YOURCOLLECTION.createIndex( { "friends.name": 1 } )
Для дальнейшего использования вы можете прочитать о $regex
query