O principal recurso do MongoDB nesta área é que uma atualização para um único documento é atômico. Dos documentos :
Então, para sua atualização de:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
isso significa que ele encontrará atomicamente um documento que corresponda aos critérios e o atualizará. Então, sim, isso funcionará bem para atribuir uma tarefa a um determinado servidor.
Veja esta outra postagem para obter mais detalhes sobre como implementar uma fila de trabalho compartilhada no MongoDB. Um ponto-chave mencionado é o uso de
findAndModify
para realizar a atualização e retorne o documento atualizado.