Example #1
0
        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);
        }
Example #2
0
        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));
        }