public override DbFunction GetDbFunction(string query) { DbFunction dbFunction = null; if (Regex.IsMatch(query, Patterns.find)) { dbFunction = new Find(query); } else if (Regex.IsMatch(query, Patterns.findOne)) { dbFunction = new FindOne(query); } else if (Regex.IsMatch(query, Patterns.findAndModify)) { dbFunction = new FindAndModify(query); } return(dbFunction); }
public static T FindOne <T>(string collectionName, FilterDefinition <T> filter, ProjectionDefinition <BsonDocument> projection, FindOptions findOptions = null, bool includeSchema = false) { var request = new FindOne { CollectionName = collectionName, Filter = filter.ToJson(), Projection = projection.ToJson(), FindOptions = findOptions, IncludeSchema = includeSchema, OutputMode = JsonOutputMode.Strict, CultureCode = CultureInfo.CurrentCulture.Name }; var response = Send <FindOneResponse>("entities/" + collectionName + "/findOne", request, "POST"); if (response != null && response.Result.Any()) { var documentAsEntity = BsonSerializer.Deserialize <T>(response.Result); return(documentAsEntity); } return(default(T)); }