sql >> Databáze >  >> NoSQL >> MongoDB

Jak implementovat MongoDB vnořený $elemMatch Query v C#

Upřímně, psaní dotazů v C# je trochu složité, ale vždycky si můžete zahrát.

var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);

var result = col.FindSync (filter).ToList();

Deserializuji prosté dotazy MongoDB do BsonDocument, který na oplátku předávám FindAsync jako filtr.

Nakonec budete mít požadovaný výsledek ve variabilním výsledku.

Poznámka:Předpokládám, že připojení MongoDB bylo navázáno a proměnná col obsahuje odkaz na kolekci MongoDB.

EDIT:Viz následující odkaz https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Nyní je potvrzeno, že ovladač C# nepodporuje bezejmenné filtry, takže zápis výše dotazu pomocí Buidlers<BsonDocument>.Filter momentálně není podporováno.

Stručně řečeno, zbývá vám pouze jedna možnost, a to dotazovat se, jak jsem uvedl výše ve svém řešení.




  1. mapa MongoDB()

  2. Vrátí výsledek jako pole pouze hodnot

  3. Výjimka GSS:Nebyly zadány žádné platné přihlašovací údaje (úroveň mechanismu:Nepodařilo se najít žádné Kerberos tgt)

  4. Náhodný záznam z MongoDB