sql >> Database >  >> NoSQL >> MongoDB

C# mongo-query's met json-tekenreeksen

Het is lelijk, maar je kunt dit doen door de string te deserialiseren in een BsonDocument en vervolgens verpakken in een 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

Als u van plan bent dit vaak te doen, kunt u het altijd in een methode verpakken of een JSQueryDocument maken klasse als volgt:

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. Update ingebed object binnen array in array in MongoDB

  2. MongoDB ::zijn Mongo-ID's uniek in collecties?

  3. Apache CouchDB installeren in Ubuntu 20.04

  4. MongoDB $setUnion