Mongodb — inclure ou d'exclure certains éléments avec c# pilote
Comment pourrais-je traduire cette mongo requête pour une Requête.EQ déclaration en C#?
db.users.find({name: 'Bob'}, {'_id': 1});
En d'autres termes, je ne veux pas que tout est revenu à la C# -- Juste l'un des éléments dont j'ai besoin, de l'_id. Comme toujours, la Mongo C# Pilote tutoriel n'est pas utile.
Vous devez vous connecter pour publier un commentaire.
Mise à jour: Avec la nouvelle version du pilote (1.6+), vous pouvez éviter les noms des champs de codage en dur en utilisant linq place:
Vous pouvez le faire via
SetFields
méthode de mongodb curseur:Par défaut
SetFields
comprend les champs spécifiés. Si vous avez besoin d'exclure certains champs, vous pouvez utiliser:Ou vous pouvez les utiliser ensemble:
À partir de v2.0 du pilote il y a un nouveau async-seulement de l'API. L'ancienne API ne devrait plus être utilisée que c'est un blocage de la façade sur la nouvelle API et est obsolète.
Actuellement recommandé d'inclure ou d'exclure certains membres est d'utiliser le
Project
méthode sur laIFindFluent
vous obtenez à partir deFind
.Vous pouvez passer soit une expression lambda:
Ou de l'utilisation de la projection constructeur:
Project
ne pas filtrer uniquement dans la mémoire. C'est l'API qui récupère seulement des domaines spécifiques.BsonClassMap.RegisterClassMap<Hamster>...
)?Mise à jour Vous pouvez utiliser une projection et
FindAsync
qui retourne un curseur et ne prend pas en charge tous les documents à la fois à la différence deTrouver
. Vous pouvez également définir un ordre de tri et de limite pour le nombre de documents retournés.voici une façon simple de récupérer uniquement la
id
que vous avez besoin:vous l'esprit, le code ci-dessus utilise mongodb wrapper bibliothèque appelée MongoDB.Les entités