sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man implementerar MongoDB kapslad $elemMatch Query i C#

Tja, att ärligt skriva frågor i C# är lite knepigt men du kan alltid spela ett trick.

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

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

Jag deserialiserar en vanlig MongoDB-fråga till ett BsonDocument som jag i gengäld skickar till FindAsync som filter.

I slutändan får du önskat resultat i variabelt resultat.

Notera:Jag antar att MongoDB-anslutningen har upprättats och variabeln col har hänvisning till MongoDB-samlingen.

EDIT:Se följande länk https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Nu har det bekräftats att C#-drivrutinen inte stöder namnlösa filter så skriv ovanstående fråga med Buidlers<BsonDocument>.Filter för närvarande stöds inte.

Lång historia kort, du har bara ett val och det är att fråga som jag nämnde ovan i min lösning.




  1. Skapa ett 2dsphere Geospatial Index för sfäriska frågor i MongoDB

  2. Stoppa redis-servern. Varken avstängning eller stopp fungerar

  3. Mongoose - orsakad av ::11000 E11000 duplicate key error index?

  4. Returnera det sista sanna värdet för varje grupp