MongoDb c# pilote de trouver l'élément dans le tableau par la valeur du champ
j'ai trouvé le moyen de vérifier est la valeur contient en tableau simple :
var filter = Builders<Post>.Filter.AnyEq(x => x.Tags, "mongodb");
Mais comment trouver une problématique complexe avec de nombreux champs par un champ concret ?
J'ai trouvé la manière de l'écrire via le point d'approche avec BsonDocument
builder, mais comment puis-je le faire avec tapé lambda notations ?
upd
je pense qu'il une sorte de
builderInst.AnyIn(p => p.ComplexCollection.Select(ml => ml.Id), mlIds)
mais ne peut pas vérifier, dès maintenant, est ce que quelqu'un pourrait aider ?
Ressemble à un des devoirs de MongoDb à l'Université.
Double Possible de MongoDB + C# pilote + requête tableau d'éléments où chaque élément du tableau contient des sous-document à la requête sur
Double Possible de MongoDB + C# pilote + requête tableau d'éléments où chaque élément du tableau contient des sous-document à la requête sur
OriginalL'auteur Vladislav Furdak | 2015-08-03
Vous devez vous connecter pour publier un commentaire.
Il est
ElemMatch
Vous ne pouvez pas l'utilisateur
AnyIn
lorsque vous avez tableau d'objets complexes.OriginalL'auteur rnofenko
Vous avez besoin de la
$elemMatch
de l'opérateur. Vous pouvez utiliserBuilders<T>.Filter.ElemMatch
ou unAny
expression:http://mongodb.github.io/mongo-csharp-driver/2.0/reference/driver/expressions/#elemmatch
OriginalL'auteur hansmaad
Que de la version 2.4.2 de C# pilotes, le IFindFluent interface peut être utilisée pour interroger sur l'élément de tableau. ElemMatch ne peut pas être utilisé sur un tableau de chaînes directement, tandis que l'interface de recherche va travailler sur soit simple ou de types complexes (par exemple, les Balises.Nom') et est fortement typé.
Linq pilote utilise l'agrégation cadre, mais pour une requête sans opérateurs d'agrégation un trouver est plus rapide.
Noter que ce qui a été brisé dans les versions précédentes du conducteur pour que la réponse n'était pas disponible au moment de l'annonce originale.
OriginalL'auteur Aaron Newman
Voici un exemple qui renvoie une seule chose de complexe à partir d'un tableau (à l'aide de MongoDB.Pilote v2.5.0):
Modèle De Données Simple
Option 1 (Agrégation)
Option 2 (Filtre & Linq) C'était environ 5x plus lent pour moi
OriginalL'auteur JBond