Comment faire des requêtes imbriquées dans MongoDb qui fonctionne comme imbriquée Sql les requêtes select

Je veux faire un efficace requête dans MongoDb pour trouver tous les utilisateurs qui ont leurs identifiants figurant dans un groupe d'utilisateurs. Idéalement, je veux en faire une seule demande pour Mongodb.
Ce que je veux correspond à imbriqués sélectionne dans SQL.
J'ai essayé ceci dans le shell mongo:

db.user.save({_id:"u1", Name:"u1 name"});
db.user.save({_id:"u2", Name:"u1 name"});
db.user.save({_id:"u3", Name:"u3 name"});
db.usergroup.save({_id:"g1", Users: ["u2","u3"]});

Voici maintenant le sélectionnez je veux faire, mais sans le coder en dur l' ["u2","u3"] tableau:

db.user.find({_id:{$in:["u2","u3"]}}).forEach(printjson);

Cela fonctionne bien et ramène l'utilisateur des objets pour u2 et u3.

Maintenant, la question est de savoir comment obtenir le tableau des identifiants dans le $dans l'opérateur extrait avec une requête telle que l'intégralité de la requête peut être faite avec une seule requête.

Une "requête imbriquée" comme cela ne fonctionne pas:

db.user.find({_id:{$in:db.usergroup.find({_id:"g1"},{_id:0,Users:1})}}).forEach(printjson);

Donne cette erreur:
Mar Mar 27 06:17:41 uncaught exception: erreur: { "$err" : "requête invalide", "code" : 12580 }
échec du chargement: mongoNestedSelect.js

1) est-ce possible dans mongodb et comment ?

2) comment faire cela avec l'officiel c# pilote ?

OriginalL'auteur ssn | 2012-03-27