I'd think of it this way: the connection between an App Engine instance and any other computer is likely to be an HTTP request, given that arbitrary port connections are disallowed by the sandbox. There is a sockets service, but you'd need to find a library which can interface with this service and speak
MongoDB wire protocol through the socket.
On
Managed VMs, which allow you to run an App Engine -style app in a more permissive sandbox by putting your application into a
docker container for deployment, and allowing arbitrary port connections, full file-system (FS) access, process-control, and many other OS-level operations not possible in the vanilla GAE sandbox. You could use your app's dockerfile to download and install a mongoDB client and initiate connections on whichever port you like.
However, if you'd like to stick with vanilla GAE, as you don't have need of many of the advanced features of Managed VMs, I'd recommend installing and configuring a REST API interface for your DB server. There are several out there, and even
official Mongo docs.
Similar advice goes for redis, and I'll leave you to your google-fu in finding the REST API for that.
XMPP is supported on GAE by the
XMPP service, although once again, if you desire process control, Managed VMs are what you want, short of finding a REST API option. This all derives from the nature of GAE and Managed VMs, and the types of connections require by these applications (transport layer sockets control).
On a more meta note, the question of MongoDB and GAE has been broached several times on stackoverflow
[1] [2]. I wonder if you checked there during your search? Generally I find
the docs and google to be invaluable if I have a curiosity about what I believe might be an edge case. Granted, none of these resources were as thorough as my synthesis into one comment, so I hope you find this helpful, and that future google-searches may land in this thread.
Regards,
Nick