sql >> Databasteknik >  >> NoSQL >> MongoDB

C# mongo-frågor med json-strängar

Det är fult, men du kan göra detta genom att deserialisera strängen till ett BsonDocument och sedan slå in ett QueryDocument

BsonDocument query = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>("{ SendId: 4, 'Events.Code' : { $all : [2], $nin : [3] } }");
QueryDocument queryDoc = new QueryDocument(query);
var result = collection.FindAs<TypeOfResultExpected>(queryDoc); // or just use Find

Om det är något du planerar att göra ofta kan du alltid slå in det i en metod eller skapa ett JSQueryDocument klass som följande:

public class JSQueryDocument : QueryDocument
{
    public JSQueryDocument(string query) : base(MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(query))
    {
        // Probably better to do this as a method rather than constructor as it
        // could be hard to debug queries that are not formatted correctly
    }
}

/// ...

var result = collection.Find(new JSQueryDocument("{ SendId: 4, 'Events.Code' : { $all : [2], $nin : [3] } }"));


  1. Få nollpekare undantag Mongo aggregation med hjälp av fjäderdata (dynamiska fält)

  2. Hur man använder Redis sorterade listor

  3. Skrivskyddat filsystem när du försöker mkdir /data/db på Mac

  4. Misslyckades med global initiering:BadValue Ogiltigt eller ingen användarspråk inställd. Se till att miljövariablerna LANG och/eller LC_* är korrekt inställda