यह बदसूरत है, लेकिन आप स्ट्रिंग को BsonDocument
में डिसेरिएलाइज़ करके ऐसा कर सकते हैं और फिर एक 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
यदि ऐसा कुछ है जिसे आप अक्सर करने की योजना बनाते हैं, तो आप इसे हमेशा एक विधि में लपेट सकते हैं, या एक JSQueryDocument
बना सकते हैं निम्न की तरह वर्ग:
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] } }"));