Use non-blocking binary search to get by id, added getSongsByAttr to return an array of matching results