I think I found the answer myself:
https://groups.google.com/forum/#!topic/django-non-relational/kCLOcI7nHS0
Basically, looks like this is not supported yet.
So the workaround is raw queries.
In order to make raw queries the code in the question should be modified to:
from django_mongodb_engine.contrib import MongoDBManager
class Parent(models.Model):
id = models.IntegerField(primary_key=True)
children = ListField(EmbeddedModelField('Child'))
objects = MongoDBManager()
class Child(models.Model):
id = models.IntegerField(primary_key=True)
Then
Parent.objects.raw_query({'children.id': 123})
works.