public static FindAndModifyOptions FindAndModify(object projection, object sort, bool upsert = false, bool returnNewDocument = false)
        {
            var result = new FindAndModifyOptions(projection, sort);

            result.upsert = upsert;
            result.return_new_document = returnNewDocument;
            return(result);
        }
        public static FindAndModifyOptions Find(object projection, object sort, Int64?limit = null)
        {
            var result = new FindAndModifyOptions(projection, sort);

            if (limit.HasValue)
            {
                result.limit = limit.Value;
            }

            return(result);
        }